【问题标题】:Move old site from root to subdirectory and install WordPress in the root (redirect conflicts)将旧站点从根目录移动到子目录并在根目录中安装 WordPress(重定向冲突)
【发布时间】:2016-06-18 00:57:57
【问题描述】:

我将旧静态站点移动到名为“old”的子目录中,并将 WordPress 安装在根目录中。如何在不与 WordPress .htaccess 产生冲突的情况下重定向到旧站点?

示例: mysite.com/myoldsitefile.htm 应该重定向到 mysite.com/old/myoldsitefile.htm 而不是 WordPress 站点的 404 错误页面。

【问题讨论】:

  • 我建议你用谷歌搜索:“在子目录中安装 wordpress”。
  • 在这种情况下,我的网站将在 mysite.com/newsitedirectory 上可用,我不希望这样。
  • 从经验中我可以告诉你,在子目录中安装 wordpress 作为事后的想法会导致很多问题。 HTACCESS 只会让你到目前为止。旧网站的数据库也需要更新。

标签: wordpress .htaccess redirect mod-rewrite http-status-code-301


【解决方案1】:

在您的 Wordpress htaccess 中添加以下内容(在 Wordpress 规则之前):

RewriteEngine On
RewriteRule old/.* - [L]

这将 skip the next rules 用于所有以 old/ 为前缀的 URL。

更新

在此规则之上,您必须添加一些规则以将旧网址重定向到 old 文件夹:

# Redirect all .html and .htm
RewriteCond %{REQUEST_URI} !^/old[/]?
RewriteRule ^([^.]*).(html?) old/$1.$2 [R=301,L]
# Redirect everything that is in your images folder
RewriteRule ^medias/(.*) old/medias/$1 [R=301,L]

等等。

【讨论】:

  • 它不起作用。 mysite.com/myoldsitefile.htm 应该重定向到 mysite.com/old/myoldsitefile.htm 而不是 WordPress 站点的 404 错误页面。
  • 它有效,您只是没有解释您的旧网址尚未重定向到旧目录。您所有的旧网站网址是否都以 .htm 结尾?
  • 否,.htm、.html、.jpeg、子目录/subfile.htm 等
  • 我编辑了我的答案,以提供一些您可以使用的通用重写规则示例。但是您必须自己努力为使用通用追赶无法匹配的文件构建每个重写规则。
  • 我得到“ERR_TOO_MANY_REDIRECTS”。 mysite.com/oldsitefile.html 重定向到 mysite.com/old/old/old/old/old/old/old/old/old/old/old/old/old/old/old/old/old/old/old /old/old/oldsitefile.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 2011-01-31
相关资源
最近更新 更多