301重定向动态主机包括DOCUMENT_ROOT

时间:2012-02-17 14:17:35

标签: mod-rewrite

根据我在Apache上阅读的内容,我使用了以下示例,他们提供了在我的所有网站上进行301重定向。

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

这并不像他们所说的那样有效。如果我试试www.domain.com就行了。如果我尝试使用domain.com,我会收到www.domain.com//home/www/public_html/www.domain.com

看起来它想要在重定向中包含DOCUMENT_ROOT。我最好为每个网站创建一个单独的.htaccess吗?

什么运行得更快 - Apache或HTACCESS?

2 个答案:

答案 0 :(得分:0)

使用Apaches httpd.conf的速度更快,因为访问.htaccess文件会增加一小笔开销--Apache会检查文件的每个目录和父目录,并且会为每个请求加载它。

当您有权访问时,使用httpd.conf会更好。如果您无权访问主配置文件,请使用.htaccess

答案 1 :(得分:0)

试试这个。确保包含RewriteBase /

RewriteEngine on
RewriteBase / 

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

如果您仍然获得旧结果your previous 301 redirect is probably cached,请在私密(隐身)浏览模式下重新测试。