使用.htaccess重定向将多个旧页面和非www重定向到www

时间:2013-08-02 06:36:29

标签: wordpress

我在.htaccess文件上进行了以下重写。它工作正常,但我无法将非www重定向到www。该网站还用作使用子域的多站点wordpress安装。所以我很困惑如何让主站点将非www重定向到www链接和页面重定向,而不是搞乱子域网站。

<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteCond %{HTTP_HOST} ^abc\.com\.au
#RewriteRule ^(.*)$ http://www.abc.com.au/$1 [R=301,L] 

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]

##### PAGE REDIRECTS ######
RewriteRule ^about\_abc\.htm$ "http://www.abc.com.au/company-profile/" [R=301,L]
RewriteRule . index.php [L]
</IfModule>

1 个答案:

答案 0 :(得分:0)

您必须采取以下几个步骤:

  1. 编辑主网站的home_url和site_url选项(如果你的table_prefix是“wp_”,则在wp_options中,因为你想要更改主网站的网址)。
  2. 在wp_blogs中将主博客的域名编辑为www.your-domain version
  3. 编辑wp-config DOMAIN CURRENT SITE,如下所示:

    define('DOMAIN_CURRENT_SITE', 'www.example.com'); //your new www one!
    
  4. 转到您博客的wp-admin并重置永久链接

  5. 您的RewriteRule很好,但您可以在其他网站中使用它更具动态性:

    RewriteCond %{HTTP_HOST} ^example.com
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
    
  6. 或者,如果您的主机多域进入同一网络,请执行以下操作:

        RewriteCond %{HTTP_HOST} ^(example1|example2|exampleN).com
        RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
    

    如果您在子域中设置了以前的其他博客,那么您可以放心使用,因为它们与没有www的上一个主域链接。我个人测试了这个配方到上个月迁移到www主域的多域网络。