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

时间:2013-01-25 01:22:10

标签: php mod-rewrite

我正在尝试使用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

最后,网址应该像/sports/123-how-to-lose-weight.html

此外,我正在为类别页面尝试相同的操作。它们应该像路由一样 www.blabla.com/sports - > /subject/category.php?cat=sports

(ps:根据上限规则请求页面时,我在RewriteLog上看不到任何关于9级日志记录的内容)

非常感谢你的帮助:))

1 个答案:

答案 0 :(得分:1)

你能尝试一下吗?

// 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

但首先:RewriteEngine On。 :)