[英]htacess rewrite not redirecting original url to seo friendly
我已经重写了htacess规则以创建seo友好的url。
我成功地将我的网址从/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]
帮助将不胜感激。
谢谢
编辑在本地主机上工作
请问有帮助吗? :)
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^abc/([a-zA-Z0-9]+)/?$ abc.php?lType=$1 [L,QSA]
我认为不需要第一个重写规则...这就是错误。 我没有检查我的答案,而是亲自写出来,所以必须检查:)。 最好的祝福!
您无法在重写规则中与查询字符串匹配,因此您的模式^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]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.