301 .htaccess重定向apache服务器

时间:2018-06-28 18:53:02

标签: regex apache .htaccess redirect

所以我遇到了问题,我希望所有来自

的请求

https://transfinmedia.com/author?url=akchopra1-A268

要在301上重定向

https://transfinmedia.com/author/akchopra1-A268

但是当我使用

RewriteEngine on
RewriteCond %{QUERY_STRING} url=(.*) 
RewriteRule ^author(.*) /author/%1 [L,R=301,NC]

请求

https://transfinmedia.com/author?url=akchopra1-A268被重定向到

https://transfinmedia.com/author/akchopra1-A268?url=akchopra1-A268

我在做什么错,完全出于线索。

2 个答案:

答案 0 :(得分:1)

默认情况下,mod-rewrite将旧的QueryString附加到新的目标URL。要舍弃QueryString,您需要在目标网址的末尾放置一个?(一个空的问号)。

RewriteEngine on
RewriteCond %{QUERY_STRING} url=(.*) 
RewriteRule ^author(.*) /author/%1? [L,R=301,NC]

在使用此功能之前,请确保清除浏览器缓存。

答案 1 :(得分:0)

RewriteRule更改为

RewriteRule ^author\?url=(.*)$ /author/%1 [L,R=301,NC]

Demo