强制重定向Htaccess

时间:2017-12-22 07:21:08

标签: .htaccess redirect

好的,我需要强制将domain.com/article-detail/?slug=this-is-my-article重定向到domain.com/article-detail/this-is-my-article(只需删除?slug=

在此网站搜索后,我尝试

RewriteRule ^article-detail/?slug=(.*)$ article-detail/$1 [NC,R=301,L]

RedirectMatch 301 ^/article-detail/?slug=(.+)$ /article-detail/$1/

但没有工作

仅供参考:目前,要查看this-is-my-article,用户可以访问domain.com/article-detail/?slug=this-is-my-article& domain.com/article-detail/this-is-my-article

1 个答案:

答案 0 :(得分:0)

您应该使用RewriteCondRewriteRule指令。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/article-detail/?$
RewriteCond %{QUERY_STRING} ^slug=([a-z-]+)
RewriteRule ^article-detail /article-detail/%1/ [R=301,L]

第3行:如果请求URI为/article-detail/article-detail/

第4行:如果查询字符串以slug=开头,后跟lower case letters with dash

第5行:将模式article-detail重写为/article-detail/%1%1RewriteCond反向引用,匹配括号内的字符串,并永久重定向。