了解.htaccess文件,并编写重定向

时间:2012-06-27 21:20:49

标签: .htaccess

好的,所以我必须在客户端网站上做一些工作 - 出于某种原因,他们都有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。

1 个答案:

答案 0 :(得分: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. 使用生成的网址作为301重定向(永久重定向)和[R=301]标记
  4. 如果抓住这个规则,则不会使用[L]标记
  5. 来阅读下一条规则
  6. 使用[QSA]标记转发GET数据。
  7. 您必须将此代码放在这两行之后:

    RewriteEngine On
    RewriteBase /
    

    启用Rewrite引擎,并定义基本URL。

    小心:重定向不转发POST数据。请确保在您的代码中使用www子域名(这可以使用集中的base_url轻松完成。)

    查看here以了解更好的htaccess文件。