gpt4 book ai didi

.htaccess - 301 从旧页面重定向到 Apache 上的新页面不起作用

转载 作者:行者123 更新时间:2023-12-03 08:07:38 27 4
gpt4 key购买 nike

在这种情况下,简单的 301 重定向不起作用 - 例如:

Redirect 301 /oldpage http://www.mysite.co.uk/newsubdir/newpage

该网站是动态的,.htaccess 已经将页面从包含查询字符串的 URL 重命名为搜索引擎友好的 URL。

RewriteRule ^(.*)/(.*)$  index.php?page_name=$1&sub=$2 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)([^/])$ http://www.mysite.co.uk/$1$2/ [R=301,L]

当我们在同一个 .htaccess(底部)中像上面那样使用这些 301 重定向时,页面正在重定向,但查询字符串令人沮丧地添加到 URL 的末尾,我们还没有弄清楚为什么或如何以防万一。

301 重定向后,URL 看起来像:-

http://www.mysite.co.uk/newsubdir/newpage/?page_name=old-page&sub=

...导致 404 错误 - 它只是添加在 URL 末尾的查询字符串破坏了重定向。

请问有谁能告诉我需要做什么来解决这个问题吗?

谢谢

最佳答案

在 URL 末尾添加问号 ? 以防止将现有查询字符串复制到新 URL:

Redirect 301 /oldpage http://www.mysite.co.uk/newsubdir/newpage?

但由于您已经在使用 mod_rewrite,我建议您也将它用于此任务(将此规则置于其他重写规则之上):

RewriteRule ^oldpage$ http://www.mysite.co.uk/newsubdir/newpage? [R=301,L]

关于.htaccess - 301 从旧页面重定向到 Apache 上的新页面不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7487331/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com