无限循环旧索引文件中的旧WP安装到新

问题描述 投票:1回答:2

旧的网站有一个(302)从重定向/到/index.shtml。

新网站将是/不是可见。对于搜索引擎优化的原因,我们希望有一个301重定向从/index.shtml到/。

但是,如果我再补充一点,我们重定向陷入无限循环的htaccess文件。所以地方还有必须从重定向/到index.shtml,但在哪里?

旧网站被安装在根目录/。新网站还处于的/ dev /(不是我的选择),但htaccess的确保,当有人去/他们实际看到的/ dev /网站。 htaccess的文件保存在/和不是/ dev /。

在哪里可以从/index.shtml老重定向到/是什么?

我的htaccess的代码行产生了一个问题:

重定向301 /index.shtml http://www.example.com/

可以在误差所致:

IfModule mod_rewrite.c(用方括号)

RewriteEngine叙述在

RewriteBase /

重写规则^ $的index.php - [L]

的RewriteCond%{} REQUEST_FILENAME!-f

的RewriteCond%{} REQUEST_FILENAME!-d

重写规则。的index.php [L]

/ IfModule(带括号)

wordpress .htaccess redirect
2个回答
1
投票

。至于它重定向/index.shtml到您的文档根,其已指向/index.shtml您的重定向是导致无限循环。

To fix this or to set the **/index.shtml** as your root directory handler ,you can use one of the following methods : DirectoryIndex DirectoryIndex index.shtml DirectoryIndex will internally forword your **/** home directory to **/index.shtml** . Mod-rewrite : RewriteEngine ^$ /index.shtml [L] This will rewrite your home directory to **/index.shtml** .

如果你想重定向到/index.shtml /,您可以使用以下规则:

RewriteEngine on
RewriteCond %{THE_REQUEST} /index\.shtml\s
RewriteRule ^index.shtml$ / [L,R]

这将重定向到/index.shtml /不引起无限循环。


0
投票

我知道我来了迟到了,但问题是,浏览器不是网站。 301个302重定向都通过最新的浏览器缓存,因此,当你改变它们重新指向先前重定向东西,你将体验的循环。

你可以用incognito mode测试它,你会看到重定向循环将不会发生你了。这是因为incognito mode不缓存或遵守的重定向缓存自己的会话之外。

不幸的是,有没有办法,以确保访客先前不被卡住在循环这就是为什么你应该使用301个重定向非常小心。 302个重定向,作为“临时”重定向,会表现得更好重定向循环,但更好的解决办法是使用DirectoryIndex加载index.shtml作为默认文档,而不是重定向到它(这是最终问题所在)。

© www.soinside.com 2019 - 2024. All rights reserved.