RewriteRule用于多个文件名

时间:2013-06-24 22:33:30

标签: php .htaccess mod-rewrite hyperlink

我一直在使用下一个:

RewriteRule ^(.*)/$ page.php?name=category&type=$1 [L]

重写我的链接。我只使用了一个文件名“page.php”,它起作用了。 今天,我想添加另一个文件“project.php”,并需要另一个RewriteRule,这是我试图在.htaccess中使用的完整代码:

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]

RewriteRule ^(.*)/$ page.php?name=category&type=$1 [L]
RewriteRule ^(.*)/(.*)/(.*)/(.*)/$ project.php?category=$1&id=$4&type=$2&name=$3 [L]

但是,它只适用于第一条路径,并且会混淆第二条路径。拜托,任何人都可以帮忙解决这个问题吗?我试图寻找它一段时间,但找不到解决方案。非常感谢提前!

1 个答案:

答案 0 :(得分:1)

正如Jonathan Kuhn所说(.*)读取所有字符所以首先放置project.php rule并在该规则中使用至少([^/]+)代替(.*)([^/]+)读取除/以外的一个或多个字符。