0

好的,所以我必须在客户网站上做一些工作 - 出于某种原因,他们都有 www。子域和正在使用的空子域,具有不同的网站。他们不想要这个。

他们想要 www。仅子域(也就是说,他们希望空子域重定向到 www。)

据说,这就是它在 Wordpress 中的设置方式。

这是我的 .htaccess 文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^(.*)(\.htm|\.html)$ /contact [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

#php_flag display_errors on
#php_value error_reporting 8191

任何人都可以解释这个吗?(我对 .htaccess 文件不是很熟悉——任何拥有任何资源的人都会有所帮助)。例如,如何让任何访问http://examplesite.com的人访问http://www.examplesite.com

同一个域上怎么会有两个不同的网站?我正在查看 public_html 文件夹,似乎根本没有对其他站点的引用 - 什么都没有,没有文件,nada。

4

1 回答 1

1

要强制使用www子域,您可以添加以下代码:

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

这是这些行的作用:

  1. 检查 HTTP_HOST,它必须是domain.com
  2. 取当前请求,在后面加上www.domain.com/$1代表抓到的请求)
  3. 将生成的 url 用作带有[R=301]标签的 301 重定向(永久重定向)
  4. 如果这条规则被捕获,则不阅读下一条规则,带有[L]标签
  5. 转发 GET 数据,带[QSA]标签。

您必须将此代码放在这两行之后:

RewriteEngine On
RewriteBase /

其中设置了重写引擎,并定义了基本 url。

注意:重定向不会转发 POST 数据。确保在您的代码中始终使用 www 子域(这可以使用集中式轻松完成base_url)。

看看这里以了解更好的 htaccess 文件。

于 2012-06-27T21:44:06.783 回答