Mod rewrite mod_重写规则不起作用

Mod rewrite mod_重写规则不起作用,mod-rewrite,apache2,Mod Rewrite,Apache2,我的htaccess中有以下规则: RewriteRule ^([^/.]+)/?$ list.php?categoryShortForm=$1&locationShortForm=world [QSA] RewriteRule ^([^/.]+)/([^/.]+)/?$ list.php?categoryShortForm=$1&locationShortForm=$2 [QSA] RewriteRule ^([^/.]+)/([^/.]+)/[^/.]*-p(

我的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]
在我的本地主机(windows、xampp)中,一切正常。 在我的真实服务器(linux、apache)中,前两条规则可以正常工作,但第三条规则不行

例如:

/plastics surgery/california usa/
效果很好,但是
/整形外科/美国加利福尼亚州洛杉矶/test-1-p1
给了我一个404


任何想法???

检查以确保您可以直接浏览到目标URL。如果mod_rewrite正在重写不存在的东西,那么您将得到404。这可能有助于将mod_rewrite的日志级别提升到一个较高的值,这样您就可以看到它正在重写的内容。

我不太清楚您的工作URL实际应该如何工作。所有三种模式都以“一个或多个非斜杠、非句点字符”([^/]+)开头,但进入模式匹配的URL以斜杠开头:“/plastic surgery/california usa/”

您是否打开了mod_rewrite日志并检查了mod_rewrite实际上在做什么

  RewriteLog "/tmp/rewrite.log"
  RewriteLogLevel 9

您确定服务器上存在view.php吗?您真的在使用Apache 2吗?如果是这样的话,我在某个地方读到它与前一个版本有一些更改。您是否尝试查看apache服务器日志以获取更详细的错误消息?*me*Study*!我没有上传目标文件view.php。谢谢