我希望直接.php请求得到一个notfound错误。国防部改写直接.php访问
的作用是这样的:
RewriteRule ^update/([^/]+)/([^/]+)$ update.php?version=$1&action=$2 [QSA,L]
一个正确的请求应
http://localhost/update/0.95/info
但为什么:
http://localhost/update.php/0.95/info
还能用吗?为什么角色匹配?
感谢
我希望直接.php请求得到一个notfound错误。国防部改写直接.php访问
的作用是这样的:
RewriteRule ^update/([^/]+)/([^/]+)$ update.php?version=$1&action=$2 [QSA,L]
一个正确的请求应
http://localhost/update/0.95/info
但为什么:
http://localhost/update.php/0.95/info
还能用吗?为什么角色匹配?
感谢
重写规则不不比赛http://localhost/update.php/0.95/info
。查询参数版本和操作不会被设置。该URL仍然有效,但它会工作并指向update.php。
下面是一个/update.php/0.95/info
SERVER提取物:
[QUERY_STRING] =>
[REQUEST_URI] => /update.php/0.95/info
[SCRIPT_NAME] => /update.php
[PATH_INFO] => /0.95/info
是的,它是怎么样的,如果我想它不会重定向它,导致.php?我希望你明白我的意思。 ty – Michael 2013-03-27 13:31:41
我想我是。没有重定向到URL“http:// localhost/update.php/0.95/info”,web服务器只是将请求解释为**/update.php **文件的请求。 – kjetilh 2013-03-27 13:34:49
这有点奇怪^^。如果我访问 http:// localhost/update 我找不到。那里有什么不对。我应该为.php访问获取一个notfounf,以及由于规则不是马赫的原因,就像上面的例子那样。我没有得到它 – Michael 2013-03-27 13:37:36
我看不出任何他们会匹配,因为规则要求的网址开头为'update',并贴出网址开头为'/ test'。您的配置中是否有其他重写规则? – 2013-03-27 13:18:12
对不起生气坏。复制并粘贴错误。现在修复它。 – Michael 2013-03-27 13:20:42
为了@迈克尔的防守,他可以使用'RewriteBase/test /'指令:) – kjetilh 2013-03-27 13:33:11