奇怪的 301 重定向行为

奇怪的 301 重定向行为

301 正在重定向,但它会将旧 url 附加到新 url 的末尾,如下所示:

http://www.example.co.uk/new-dir/new-page/?/old-dir/old-page/

这是我的.htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.co.uk [NC]
RewriteRule ^(.*)$ http://www.example.co.uk/$1 [R=301,L]
Redirect 301 /old-dir/old-page/ http://www.example.co.uk/new-dir/new-page/
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?/$1 [L]

答案1

不要将mod_alias其用于重定向;根据您在文件中输入的顺序,它们不会按照您期望的顺序运行。添加到重定向位置的查询字符串来自最后一个RewriteRule

替换你的Redirect线路:

RewriteRule ^old-dir/old-page/?$ http://www.example.co.uk/new-dir/new-page/ [R=301,L]

假设您的 htaccess 上下文是文档根目录。

相关内容