在.htaccess中定义了这样的重写规则
RewriteRule ^([a-zA-Z0-9_-]+)$ ___show-content.php?$1
创建的文件___show-content.php
,其中包含代码
echo (ltrim($_SERVER['QUERY_STRING'],'/')). '<br/>';
如果我输入www.mydomain.com/some-page
,则$_SERVER['QUERY_STRING'
为/some-page
。这可以按预期工作。
但是如果我输入www.mydomain.com/some-page/another-page
,那么请看Not Found The requested URL /some-page/another-page was not found on this server.
$_SERVER['QUERY_STRING'
我什么也看不见。如果一个尾部斜杠(在域名之后),那么工作正常,但如果不止一个,则不起作用。
需要修改RewriteRule以在url中使用多个尾部斜杠?
答案 0 :(得分:1)
这是因为捕获URI的正则表达式只允许其中包含一个或多个[a-zA-Z0-9_-]
个字符。
将您的规则设为:
RewriteRule ^([\w/-]+)$ ___show-content.php?$1 [L,QSA]