【问题标题】:htaccess rewrite (old domain to new domain both www and non-www)htaccess 重写(旧域到新域 www 和非 www)
【发布时间】:2012-10-17 06:58:49
【问题描述】:

我正在尝试将旧域(无论它是否具有 www 前缀)重定向到没有 www 的新域。例如:

olddomain.com > newdomain.com

www.olddomain.com > newdomain.com

我已经知道了,因此来自非 www 的重定向可以正常工作,但是如果使用 www,则域不会重定向。

这是在 Wordpress 网站上,所以我也包括了 Wordpress 使用的位。

RewriteEngine On
RewriteBase /

# ### Begin custom domain redirect ###
RewriteCond %{HTTP_HOST} ^www\.olddomain.com\.com$ [NC]
RewriteRule ^.*$ http://newdomain.com%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} ^olddomain\.com$ [NC]
RewriteRule ^.*$ http://newdomain.com%{REQUEST_URI} [R=301,L]
# ### End custom domain redirect, back to the standard WP stuff ###

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

【问题讨论】:

  • 我知道这很旧,但我想指出,如果您拥有 .com 两次,您的 www olddomain 将无法使用:^www\.olddomain.com\.com

标签: wordpress .htaccess redirect rewrite


【解决方案1】:

试试:

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

它将处理带有和不带有 www 的传入 URL。

并将RewriteBase / 移动到 WP 块上方;这可能会导致问题出现在错误的位置。

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

【讨论】:

  • 如果您使用?www. 设为可选,例如RewriteCond %{HTTP_HOST} ^(www\.)?olddomain.com [NC],您可以使用一个RewriteRule 用于www 和仅使用%1 后向引用的域名-RewriteRule ^(.*)$ http://%1newdomain.com/$1 [R=301,L]
  • 除了看起来两者都应该去没有www的新域,所以你只需要添加?使www.可选。
猜你喜欢
  • 2014-06-27
  • 1970-01-01
  • 2013-09-18
  • 2021-04-23
  • 2015-07-29
  • 1970-01-01
  • 2014-12-16
  • 1970-01-01
  • 2011-04-01
相关资源
最近更新 更多