当url以特定单词开头时,不要应用规则

时间:2012-11-05 13:19:07

标签: .htaccess mod-rewrite

我有这个规则:

RewriteRule ^([a-z]+)/([^-]+)-([^&]+)$ lala.php?type=$1&id=$2&title=$3 [L]

但我也有:

RewriteRule ^testpage/([^-]+)-([^&]+)$ lala.php?type=$1&id=$2&title=$3 [L]

第一条规则会覆盖第二条规则。是否有可能说smth:当([a-z] +)不是“testpage”时应用第一条规则?

由于

2 个答案:

答案 0 :(得分:0)

RewriteRule ^testpage/([^-]+)-([^&]+)$ lala.php?type=$1&id=$2&title=INVALID-Back-reference [L]
RewriteRule ^([a-z]+)/([^-]+)-([^&]+)$ lala.php?type=$1&id=$2&title=$3 [L]

然而,第一条规则有一点问题,因为它有两个反向引用,你已经使用了三个! 你应该删除其中一个!

答案 1 :(得分:0)

你可以使用类似这个修复的东西,而没有www subdomaind

RewriteCond %{HTTP_HOST} !^(www\.|api\.)
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

检查网址是否包含www。前缀或api。字首。当两者都不是这样的时候。它将添加www。子域名前缀。你的情况我有点不同,但适用相同的方法。