2016-07-15 89 views
1

我正在尋找一種方式來整個網站重定向到一個單獨的域。我想在httpd.conf文件中執行此操作。例如VirtualHost我看起來像:重定向所有URL到一個頁面在httpd.conf

<VirtualHost xx.xx.xx.xx> 
ServerName website.com 
ServerAdmin [email protected] 
ScriptAlias /cgi-bin/ /usr/local/apache2/htdocs/cgi-bin/ 
DocumentRoot /usr/local/apache2/htdocs/website 
CustomLog logs/website/access_log combined 
ErrorLog logs/website/error_log 
Redirect/http://newwebiste.com 
Redirect /xxx http://newwebiste.com 
</VirtualHost> 

目前上面的重定向仍然保留完整的URL。

所以,如果我想http://webiste.com/test/thispage.html我會重定向到http://newwebsite.com/test/thispage.html。我只是想讓它去到newwebsite.com並失去其餘的。

所以..

http://webiste.com/test/thispage.html

http://newwebsite.com

什麼我需要添加到httpd.conf來實現這一目標?

感謝,

回答

0

刪除

Redirect/http://newwebiste.com 
Redirect /xxx http://newwebiste.com 

,並添加

RewriteRule^http://newwebsite.com [L,R=301] 
+0

重新啓動httpd服務時,我收到無效的命令警告。請參閱下面的 –

+0

/usr/local/apache2/conf/httpd.conf中第1526行的語法錯誤: 無效的命令'RewriteRule',可能是拼寫錯誤或未包含在服務器配置中的模塊定義 –

+0

我認爲apache服務器需要被更新。重寫MOD不存在,這就是爲什麼整個事情失敗 –

2

正如您已經注意到重定向捕獲所有,並將其發送到URI目標是你不想要的東西,因此您將使用RedirectMatch來匹配所有可能的請求,但不會向目標網址添加任何內容。

所以你可以使用:

RedirectMatch^http://newsite.example.com/

隨着對mod_rewrite的一個側面說明: 我當然不推薦的mod_rewrite所推薦的其他人,除非你真的有一個手頭任務需要的只有mod_rewrite可以提供複雜性,事實並非如此。

附註2: 例如,最好使用「example.com」域名,因爲它不是一個有效的域名,並且它是永久保留用於示例目的。

相關問題