我已经重写了htacess规则来创建seo友好的网址。
我已成功将我的网址从/abc.php?lType=x
更改为/abc/x/
但是,当我打开/abc.php?lType=x
时,它仍然有效..我想将其重定向到/abc/x/
避免重复的页面。
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^abc.php?lType=([a-zA-Z0-9]+) /abc/$1 [R=301,L]
RewriteRule ^abc/([a-zA-Z0-9]+)/?$ abc.php?lType=$1 [L,QSA]
帮助将不胜感激。
由于
编辑正在使用localhost
答案 0 :(得分:0)
这会有帮助吗? :)
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^abc/([a-zA-Z0-9]+)/?$ abc.php?lType=$1 [L,QSA]
我认为不需要第一个重写规则......这就是错误。我没有检查我的答案,并从手写,所以必须检查:)。 最好的问候!
答案 1 :(得分:0)
您无法在重写规则中与查询字符串匹配,因此您的模式^abc.php?lType=([a-zA-Z0-9]+)
将始终失败。 ?
是正则表达式保留字符,表示前一个字符中的一个或不存在。在这种情况下,您希望与%{THE_REQUEST}
匹配。
RewriteCond %{THE_REQUEST} \ /+abc.php\?lType=([a-zA-Z0-9]+)
RewriteRule ^ /abc/%1? [R=301,L]