Htaccess使用尾部斜杠重写索引或不使用

时间:2013-08-11 10:57:13

标签: .htaccess

我目前在我的.htaccess文件中遇到了我的索引url重写问题,我知道我是否使用

RewriteRule ^profile/([^/]*)/?$ /profile.php?x=$1 [L]

我可以使用www.example.com/profile/get或www.example.com/profile/get/(带或不带斜线)

但我希望www.example.com/get到目前为止我所拥有的是

RewriteRule ^([^/]*)\/$ /index.php?x=$1 [L]

但如果我放一个?在$ it之前,任何答案都欢迎

1 个答案:

答案 0 :(得分:2)

使尾部斜线可选将导致无限循环,因为[^/]*将匹配任何不包含/的东西,即它也匹配index.php?x=get

您可以通过制定规则apply conditionally来避免这种情况,例如通过测试请求URI:

RewriteCond %{REQUEST_URI} !^/index\.php.*
RewriteRule ^([^/]*)\/?$ /index.php?x=$1 [L]

这样,规则只适用于请求URI不以/index.php

开头的情况