2017-07-20 146 views
0

我工作的公司打開三家餐廳,其中一家餐廳的名稱與其他餐廳不同。除了徽標和內容,該網站是相同的。出於這個原因,我已經建立了一個域名別名,並且一切正常。.htaccess將域名別名重定向到特定頁面

  • domain1.com = domain2.com
  • domain1.com/example1/ = domain2.com/example1/

然而,他們希望我重定向domain2.com,這樣,而不是domain1.com主頁,人們被送到domain2.com/example1/

這是我到目前爲止有:

RewriteCond %{HTTP_HOST} ^www\.domain2\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/example1/?$ 
RewriteRule ^(.*)$ http://domain2.com/example1/ [R=302,L] 

RewriteCond %{HTTP_HOST} ^www\.domain1\.com$ [NC] 
RewriteCond %{REQUEST_URI} ^/example1/?$ 
RewriteRule ^(.*)$ http://domain2.com/example1/ [R=302,L] 

這工作...有點。

BUT!不完全...

例子:

當HTTP_HOST是 'http://domain2.com' 這個作品

  • domain2.com到www.domain2.com/page/(工程)
  • 域2。 COM到domain2.com/page/(重定向循環)

當HTTP_HOST是 'http://www.domain2.com'

  • www.domain2.com到domain2.com/page/(工程)
  • www.domain2.com到www.domain2.com/page/(重定向循環)
+0

評論缺乏格式化...我用示例更新了我的問題。 –

+0

否定的,這是一個WordPress的網站,所以網頁不在任何目錄。我想要做的是保持域別名的功能,同時仍將domain2.com重定向到特定頁面。如果這是有道理的。 –

+0

我一直在使用一個叫做Fiddler的程序來監視HTTP請求,並且在最初的302重定向之後,它只是繼續執行302重定向,直到它超時爲止。我必須把它搞亂一些...... –

回答

0

我已經終於搞定了。

我已經更新了我的htaccess看起來像這樣:

RewriteCond %{HTTP_HOST} ^(www\.)?domain2\.com$ [NC] 
RewriteCond %{REQUEST_URI} ^/$ 
RewriteRule ^(.*)$ http://domain2.com/example1/ [R=302,L] 

這樣的伎倆最終被:

RewriteCond %{REQUEST_URI} ^/$ 

我讀%{REQUEST_URI}總是包含一個斜線,這是從來沒有空,所以通過檢查它是否只包含我能夠理清我的重定向。現在

,如果HTTP_HOST是www.domain2.com

  • 的RewriteCond%{HTTP_HOST} ^(WWW)?域2。COM $ [NC] = TRUE
  • 的RewriteCond%{REQUEST_URI} ^/$ = TRUE
  • 重定向!

而且,如果HTTP_HOST是www.domain2.com/example1/

  • 的RewriteCond%{HTTP_HOST} ^(WWW)。?domain2.com $ [NC] = TRUE
  • RewriteCond%{REQUEST_URI} ^/$ = FALSE
  • 否重定向!嗚!
相關問題