htaccess RewriteRule for / category / page

时间:2014-10-27 06:46:17

标签: regex apache .htaccess mod-rewrite

在.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中使用多个尾部斜杠?

1 个答案:

答案 0 :(得分:1)

这是因为捕获URI的正则表达式只允许其中包含一个或多个[a-zA-Z0-9_-]个字符。

将您的规则设为:

RewriteRule ^([\w/-]+)$ ___show-content.php?$1 [L,QSA]