2010-05-24 94 views
0

我有來自example.com重定向頁面的問題301規則(到)www.example.com重定向使用在.htaccess

我的代碼是:

RewriteEngine on 

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

它沒有工作,有什麼幫助?

+0

請問我的回答幫助?你需要額外的東西嗎? – Sonny 2010-05-27 13:33:51

+1

它是如何「不工作」?它不重定向嗎?你有500錯誤嗎? – 2010-05-30 22:05:03

+0

它不重定向,它給了我openDNS頁面 – user220755 2010-06-01 22:01:51

回答

2

你需要做的只是強制你的域名的www版本?只是這樣做......

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

這就是我所做的並且它不起作用 – user220755 2010-05-30 15:32:58

+2

這對於example.com到www.example.com肯定有效,這就是你的問題指定,除非你沒有安裝mod_rewrite或你的Apache配置文件不允許你的.htaccess工作。如果你有特定的子域需求,或許你應該重新發布你的確切情況。 – philfreo 2010-05-30 21:25:02

+0

我一直使用這個(數百網站,字面上),它的工作正常。你的是略有不同的,因爲它的子域,但應該工作一樣好,如果不是,我會檢查您的主機提供商,並確保他們不有任何限制 – 2010-05-31 19:08:25

0

這就是我的改寫的樣子,和它的作品:

## REWRITE RULES 
# enable rewrite 
RewriteEngine On 
RewriteBase/

# enforce a specific domain in the url 
RewriteCond %{HTTP_HOST} !^www\.sub\.domain\.com$ [NC] 
RewriteRule ^(.*)$ http://www.sub.domain.com/$1 [R=301,NC,L] 

此規則將重定向任何不www.sub.domain.comwww.sub.domain.com

+0

事情是我重定向subdomain.blah.com(到)www.subdomain.blah.com所以我需要www(和您的解決方案上面沒有工作不幸:(:() – user220755 2010-05-30 15:33:40

+0

我已經更新了我的答案。注意感嘆號在我的情況下,我使用的條件沒有「sub」部分 – Sonny 2010-05-31 17:32:54

0

更新:基於您的評論It does not redirect and it gives me the openDNS page,我相信你的問題是不(沒?)有mod_rewrite的。

嘗試在RewriteEngine On之前加Options +FollowSymlinks,然後在RewriteEngine On之後加RewriteBase /

我推薦閱讀章節Fatal Redirectionrewrite logging找到here

您可以啓用mod_rewrite調試,看看有什麼是要去(如果有的話!):

RewriteLog "/tmp/rewrite.log"` 
RewriteLogLevel 5