2014-01-25 43 views
-1

我想重寫WWW URL重寫無法正常工作(閱讀所有其它線程)

example.com to www.example.com 

我的apache2.conf(在Linux中/ 32位的Ubuntu的Apache的主配置文件)代碼:

嘗試1 :

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

重新啓動Apache代碼不起作用!

嘗試2:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^example.com [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] 
</IfModule> 

重啓Apache代碼不起作用!

嘗試3:

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

重啓Apache代碼不起作用!

在Apache中顯示加載模塊:

rewrite_module (shared) 

我怎麼能解決這個問題?

是否有任何其他國防部我必須啓用(我不這麼認爲)。

我必須把這些代碼放在其他文件中嗎?

需要/必須使用.htaccess進行網址重寫嗎?

回答

1

你的規則沒問題。

  1. 確保規則中的「example.com」域的虛擬主機。如果您沒有「example.com」虛擬主機,請將規則放入第一個虛擬主機容器。小號

    <VirtualHost *:80> 
        ServerName example.com 
        .... 
    
        RewriteEngine On 
        RewriteCond %{HTTP_HOST} ^example.com [NC] 
        RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] 
    
        .... 
    </VirtualHost> 
    
  2. 嘗試把規則目錄中的容器:

    <Directory "/var/www/path/of/your/document_root/"> 
        RewriteEngine On 
        RewriteCond %{HTTP_HOST} ^example.com [NC] 
        RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] 
    </Directory> 
    
+0

首先非常感謝你,第二,爲什麼虛擬主機目錄代碼的作品,但不是主要的配置文件中的代碼? –