我得到了这个规则:
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”时应用第一条规则?
谢谢
我得到了这个规则:
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”时应用第一条规则?
谢谢
您可以在没有 www 子域的情况下对 url 使用类似这样的修复
RewriteCond %{HTTP_HOST} !^(www\.|api\.)
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]
这将检查 url 是否有 www。前缀或 api。字首。当两者都不是时。它将添加 www。子域前缀。你的情况我有点不同,但同样的方法适用。
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]
但是,第一条规则有一个小问题,因为它有两个反向引用,而您使用了三个!你应该删除其中之一!