0

我对我的 .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>
4

1 回答 1

0

您必须采取几个步骤:

  1. 编辑主站点的 home_url 和 site_url 选项(如果您的 table_prefix 是“wp_”,则在 wp_options 中,因为您想更改主站点的 url)。
  2. 将 wp_blogs 中主博客的域编辑为 www.your-domain 版本
  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]
    

或者,如果您的主机将多个域连接到同一个网络,如下所示:

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

如果您之前在子域中设置了其他博客,则可以放心使用,因为它们链接到之前没有 www 的主域。上个月,我已经在迁移到 www 主域的多域网络中亲自测试了这个方法。

于 2013-08-15T08:34:23.507 回答