【问题标题】:How to resolve this redirect conflict in WordPress?如何解决 WordPress 中的这种重定向冲突?
【发布时间】:2016-07-26 15:25:05
【问题描述】:

我有一个网站,我在根 .htaccess 文件中使用此代码:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

在稍后安装 WordPress 之前,这可以正常工作。

我在网站的/blog 部分安装了 WordPress。 /blog 目录有它自己的.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress

我相信 WordPress 安装正在影响我的全局 apache 规则。我想将我所有的www.mysite.com/blog/my-blog-post 重定向到mysite.com/blog/my-blog-post

【问题讨论】:

  • 您是否尝试将non-www 添加为虚拟主机的apache 配置中的alias,而不是.htaccess?您的.htaccess 应该不是问题,如果您从根.htaccess 中删除301,那么您知道它不会发生冲突,因为唯一的.htaccess 将是WP 目录中的那个。这有点道理吗?!
  • 那个 apache 配置设置在哪里?我正在使用共享托管计划。
  • 这将在您的虚拟主机配置中 [digitalocean.com/community/tutorials/… This)。您使用的是什么网络服务器? LAMP、Xampp 等
  • godaddy 的共享主机。另外,您提供的链接已损坏。
  • 啊,看来我在回复中格式错误。没关系,这意味着您没有该链接 :) 如果您与 GoDaddy 交谈,并说您希望您的 www 和非 www 域在您的托管帐户上,他们将能够提供帮助。从那里,您可以删除执行 301 的 htaccess,它可能会解决您遇到的问题

标签: wordpress apache .htaccess redirect


【解决方案1】:

如果您使用的是Apache 2.3.10 及以上版本,那么您可以像这样使用InheritBefore

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteOptions InheritBefore
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress

否则,在旧 Apache 版本中,您需要在当前的 .htaccess 中包含 www 删除规则,如下所示:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteOptions InheritBefore
RewriteEngine On
RewriteBase /blog/

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L,NE]

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]

</IfModule>
# END WordPress

【讨论】:

  • 它有缺陷,www.mysite.com/blog/ 将我重定向到mysite.com。但它应该重定向到mysite.com/blog/
  • 您尝试过这两个选项中的哪一个。顺便说一句,您的根 .htaccess 也应该使用www 删除规则进行更新,如我的回答中所示。
猜你喜欢
  • 1970-01-01
  • 2012-02-18
  • 2017-09-11
  • 2019-07-05
  • 2022-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多