0

我得到了这个规则:

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

但我也有:

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

第一条规则覆盖第二条规则。有没有可能这样说:当 ([az]+) 不是“testpage”时应用第一条规则?

谢谢

4

2 回答 2

0

您可以在没有 www 子域的情况下对 url 使用类似这样的修复

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

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

于 2012-11-06T13:40:30.710 回答
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]

但是,第一条规则有一个小问题,因为它有两个反向引用,而您使用了三个!你应该删除其中之一!

于 2012-11-05T14:15:51.990 回答