使用mod_rewrite将不存在的文件夹路由到PHP脚本

使用mod_rewrite将不存在的文件夹路由到PHP脚本,php,mod-rewrite,Php,Mod Rewrite,我试图用mod_rewrite将所有不存在的文件夹路由到特定的PHP脚本,但我无法处理它 这是一个场景,我有一些文件夹,比如/images、/gallery、/js等等。其中一些在目录下有自己的.htaccess文件和php脚本 我要做的是,在不阻塞这些文件夹和它们自己的规则的情况下,将所有其他请求重定向到/subject/content.php文件 我试过类似的方法,但不幸的是没有用 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUE

我试图用mod_rewrite将所有不存在的文件夹路由到特定的PHP脚本,但我无法处理它

这是一个场景,我有一些文件夹,比如/images、/gallery、/js等等。其中一些在目录下有自己的.htaccess文件和php脚本

我要做的是,在不阻塞这些文件夹和它们自己的规则的情况下,将所有其他请求重定向到/subject/content.php文件

我试过类似的方法,但不幸的是没有用

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9]+)/(.*)-(.*).html /subject/content.php?ID=$2
最后,URL应该类似于/sports/123-how-to-lose-weight.html

我也在尝试同样的分类页面。它们应该像 www.blabla.com/sports-->/subject/category.php?cat=sports

(注:根据上面的规则请求页面时,我也看不到第9级日志记录的RewriteLog上的任何内容)

非常感谢您的帮助:)

您能试试这些吗

// stop greedy search by "?" while using .*
RewriteRule ^([a-zA-Z0-9]+)/(.*?)-(.*?)\.html /subject/content.php?ID=$2
// or more better regexp, afak \w & \d will wolk too
RewriteRule ^([\w\d-]+)/(\d+)-([\w\d-]+)\.html /subject/content.php?ID=$2
// if not set as RewriteBase /
RewriteRule ^([\w\d-]+)/(\d+)-([\w\d-]+)\.html subject/content.php?ID=$2

但首先:
上重写引擎:)

实际上,/sports在URL中并不重要,我只使用“123”部分,它是PHP脚本中的文档ID。所以我猜应该是$2,我猜这个规则无论如何都不起作用,因为我看不到它试图通过9级logging.ooops在RewriteLog上访问content.php。。。你们可能不会相信,但我意识到我忘记了.htaccess文件上的“RewriteEngine On”。非常感谢您的帮助,它似乎正在工作:)