2017-02-14 67 views
1

如何將域A上的某個頁面重定向到htaccess文件中域B上的某個頁面?我們擁有兩個域名,並且都有指向單個服務器的名稱服務器。將域A上的某個頁面重定向到域B上的某個頁面

例如:

domainA.com/testpage 

應該去

domainB.com/bestpageever 

以下是據我已經得到了。 (我也迫使WWW的域名前)

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^domainA.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.domainA.com$ 
RewriteRule ^(.*)$ http://www.domainB.com/bestpageever [R=301,L] 

這種情況對DOMAINA所有頁面重定向到指定的頁面上域B,這是不是我想要的。無論我嘗試什麼樣的變體,我似乎都無法讓它將domainA上的「testpage」重定向到domainB上的「bestpageever」。

+0

你試過什麼樣的變化?看看['RewriteRule'](https://devdocs.io/apache_http_server/mod/mod_rewrite#rewriterule)文檔。 – hjpotter92

+1

顯然不夠...還有,在看到@arkascha的回答後,我想我可能誤解了文檔... – wcc

回答

1

這可能是接近你在找什麼:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^domainA\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domainA\.com$ 
RewriteRule ^/?testpage$ http://www.domainB.com/bestpageever [R=301] 

上述規則將在HTTP服務器主機配置或動態配置文件(.htaccess樣式文件)工作。

如果將這樣的規則在HTTP服務器主機配置可以簡化這些規則此,自那時以來,規則的特定HTTP主機內僅應用於它們在配置:

RewriteEngine On 
RewriteRule ^/testpage$ http://www.domainB.com/bestpageever [R=301] 

一般暗示:你應該總是喜歡將這樣的規則放置在http服務器主機配置中,而不是使用動態配置文件(「.htaccess」)。這些文件出了名的錯誤,很難調試,他們真的放慢了服務器。它們僅作爲最後一種選擇,用於您無法控制主機配置的情況(閱讀:真正便宜的託管服務提供商),或者您擁有依賴編寫自己的重寫規則的應用程序(這是一個明顯的安全噩夢)。

+1

我可能會保留那些'RewriteCond'因爲:「_We擁有兩個域名,並且都有名稱服務器指向一個單一的服務器。「所以,除非你確定DocRoot對於兩者都是不同的...... – hjpotter92

+1

@ hjpotter92的確,感謝你指出了這一點!不一定是問題,但可能是一個問題,具體取決於設置。 – arkascha

+1

謝謝!這樣可行。是的,我們的案例中的文字根本是一樣的。不幸的是,我正在處理遺留系統,他們希望繼續使用htaccess文件方法。 – wcc

相關問題