Mod_rewrite帮助

时间:2011-01-25 15:54:51

标签: mod-rewrite

这就是我所拥有的,但它不起作用。

RewriteRule ^location/([a-zA-Z0-9_-]+)/reviews$ location.php?purl=$1&page=reviews [L]
RewriteRule ^location/([a-zA-Z0-9_-]+)/reviews/$ location.php?purl=$1&page=reviews [L]

有谁能告诉我我做错了什么?

http://www.example.com/this-location-1234/reviews/http://www.example.com/location.php?purl=this-location-1234&page=review

4 个答案:

答案 0 :(得分:1)

您应该将这两个(几乎相同的)规则组合在一起,并确保您拥有RewriteEngine on并且您的规则正在运行(您的.htaccess正在被提取,或者您在活动的vhost定义中拥有此规则)。

RewriteEngine on
RewriteRule ^location/([a-zA-Z0-9_-]+)/reviews/?$ location.php?purl=$1&page=reviews [L]

答案 1 :(得分:1)

我认为这应该适用于您提供的示例网址:

RewriteRule ^([a-zA-Z0-9_-]+)/reviews/?$ location.php?purl=$1&page=reviews [L]

(用这个替换两个重写规则)

如果您还没有,请在此RewriteRule之前添加RewriteEngine on

如果您确实想要重写/location/this-location-1234/reviews/而不是/this-location-1234/reviews/,请使用以下内容:

RewriteRule ^location/([a-zA-Z0-9_-]+)/reviews/?$ location.php?purl=$1&page=reviews [L]

答案 2 :(得分:1)

我修好了。我不小心在链接中遗漏了一些错误。

RewriteRule ^location/([a-zA-Z0-9_-]+)/reviews/?$ location.php?purl=$1&page=reviews [L]

这很棒!

答案 3 :(得分:0)

我假设您的conf文件中有另一个名为RewriteEngine的属性? 此外,您可以使用RewriteLogLevel打开日志记录。