2012-05-31 74 views
0

我需要設置一個指令,在我的.htaccess文件重定向如下:如何重定向到不同的域

http://mydomain.com/internal/

http://myotherdomain.com/internal/

任何人都可以幫助?

感謝

我的代碼 - 產生500內部服務器錯誤

//Rewrite to www 
Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^mydomain.com/internal[nc] 
RewriteRule ^(.*)$ http://myotherdomain.com/internal/$1 [r=301,nc] 
+0

一方面,在.htaccess意見不以''//好 – geoffspear

+0

抓@Wooble - 其實我也知道,他們開始與英鎊符號(#)。我從一個在線生成器獲得了代碼,並且從未注意到該行 –

回答

2

你有一些問題與您的文件:註釋以#沒有//,你無法企及的HTTP_HOST URI(你試圖匹配/內部)並且規則或cond與標誌(NC)之間需要有一個空格。這應該工作,雖然:

#Rewrite to www 
Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC] 
RewriteRule ^internal(.*)$ http://myotherdomain.com/internal$1 [R=301,NC] 
+0

爲什麼值得@Ansari,.htaccess文件實際上存在於/ internal /目錄本身,因爲這是我想重定向的源域中唯一的目錄。結果只是給我一個目錄列表mydomain.com/internal –

+0

得到它的工作@Ansari使用這個修訂的代碼行''重寫規則^(。*)$'... –

+0

很高興聽到它 - 我要建議除了'RewriteBase/internal /'之外。 – Ansari

1

試試這個:

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC] 
RewriteRule ^internal(.*)$ http://myotherdomain.com/internal$1 [L,NC] 

(.*)將複製任何東西,所以你可以在$1使用它。如果重定向應該是永久性的,只要添加R=301L,NC

編輯 你的錯誤在給定的一段代碼是:

  1. 評論用「#」
  2. 主機是^mydomain.com$
  3. 您必須在主機和[NC]之間添加一個空格
  4. RewriteRule ^(.*)$ http://myotherdomain.com/$1RewriteRule ^internal/(.*)$ http://myotherdomain.com/internal/$1,但你的規則將重定向到internal/internal
+0

這不起作用 - 在重寫域之前,必須先重寫HTTP_HOST。 – Ansari

+0

這只是呈現一個目錄列表http://mydomain.com/internal/ @ChristopherBrix –

+0

謝謝,我添加了cond – Christopher

相關問題