mod_rewrite规则不起作用

时间:2009-11-09 22:50:08

标签: mod-rewrite apache2

我的htaccess中有以下规则:

RewriteRule ^([^/.]+)/?$ list.php?categoryShortForm=$1&locationShortForm=world      [QSA]
RewriteRule ^([^/.]+)/([^/.]+)/?$ list.php?categoryShortForm=$1&locationShortForm=$2    [QSA]
RewriteRule ^([^/.]+)/([^/.]+)/[^/.]*-p([0-9]+)/?$ view.php?categoryShortForm=$1&locationShortForm=$2&postingId=$3  [QSA]

在我的localhost(windows,xampp)中,一切正常。 在我的真实服务器(linux,apache)中,前两个规则工作正常,但不是第三个规则。

例如:

/plastic-surgery/california-usa/工作正常,但是 /plastic-surgery/los-angeles-california-usa/test-1-p1给了我一个404

任何想法??

2 个答案:

答案 0 :(得分:1)

检查以确保您可以直接浏览目标网址。如果mod_rewrite重写到不存在的东西上,你就会得到404.这可能有助于将mod_rewrite的日志级别提升到一个很高的值,这样你就可以看到它重写的内容了。

答案 1 :(得分:0)

我对你的工作网址实际工作方式有点不清楚。你的所有三个模式都以“一个或多个非斜杠,非周期性字符”([^ /。] +)开头,但进入模式匹配的URL以斜杠开头:“/ plastic-surgery / california-usa / ”

您是否打开了mod_rewrite记录并检查了mod_rewrite实际上在做什么?

  RewriteLog "/tmp/rewrite.log"
  RewriteLogLevel 9
相关问题