2014-02-18 29 views
1

我在.htaccess下面的代码。由于某种原因,它似乎不起作用。任何人都能看到为什么这是在我的网站的根源。如何将.htaccess重定向到www。版? (不工作)

Options +FollowSymLinks 
RewriteEngine On 

#Limit redirects at once (stops server crash) 
RewriteOptions MaxRedirects=10 

#Redirect visitors to www. version of website 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule ^(.*)$ http://www.MYDOMAIN.COM/$1 [R=301] 

显然,mydomain.com是我的域名。预先感谢任何能够发现任何问题的人!

更新:

这工作没有问题。但如果我访问mydomain.com/link1/link2/那么它不起作用。

为的.htaccess '/链接2 /' 是:

#settings 
Options +FollowSymLinks 
RewriteEngine On 
#homepage 
DirectoryIndex index.php 

而对于 '/链路1 /':

#/linkgenerator/ never used, but temp redirect for neatness 
Redirect 302 /fbwiki/linkgenerator/ /fbwiki/link-generator/ 

#Serve error pages 
    ErrorDocument 400 /link1/error.php 
    ErrorDocument 401 /link1/error.php 
    ErrorDocument 403 /link1/error.php?status=403 
    ErrorDocument 404 /link1/error.php?status=404 
    ErrorDocument 500 /link1/error.php?status=500 
+0

除了缺少'L'标志外,没有看到任何问题。你确定这个.htaccess确实启用并正常工作吗? – anubhava

+0

你在Apache配置中启用了htaccess吗? 'AllowOverride All' –

+0

它似乎并没有实际上做重定向,如果我去mydomain.com那么它保持那样,而它应该去www.mydomain.com。 .htaccess也适用于其他重定向,但那些重定向之后。我会尽量减少,看看是否有什么问题。 – Jason

回答

1

它不适用于子目录,因为这些子目录有它们的ow n重写规则,默认情况下,这些规则不会从父母的低层.htaccess继承。

为了克服这一点,你有两个选择:

  1. 追加类似www强迫规则在较低水平的.htaccess以及OR
  2. 添加此行的较低级别的.htaccess文件的顶部:

    RewriteEngine On 
    RewriteOptions Inherit 
    # remaining rules will be below this 
    

UPDATE:保持如T您的www规则他:

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

Wil,试试这个,谢谢! – Jason

+0

如果我这样做,它最终将重定向没有www的所有东西。根据我的网站,在www.mydomain.com。这是一个好的开始,但不是100%。谢谢! – Jason

+0

查看您的规则应该如何更新的答案。 – anubhava

1

这个配置对我的作品

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^domain\.com 
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L] 
1
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^example\.com$ [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] 
+0

它不起作用。真的不知道有什么问题......:/ – Jason

+0

在隐身窗口或其他浏览器中尝试它 –

+0

httpd.conf中的AllowOverride设置为All,对不对? –

相关问题