2011-11-22 140 views
1

我有幾個.htaccess規則我想合併。這裏是什麼,我想完成的要點:.htaccess無限循環如何停止

  1. jethro.mysite.com - >重定向到 - > gallery.mysite.com/?username=jethro & PAGE_NAME =首頁 (注:PAGE_NAME是=首頁如果尚未指定)

  2. jethro.mysite.com/ajax/dir/script.php - >重定向到 - > gallery.mysite.com/ajax/dir/script.php

  3. 否則就是像正常一樣處理。例如:jethro.mysite.com/includes/blah.css - >重定向到 - > gallery.mysite.com/includes/blah.css

到目前爲止,我的.htaccess位於jethro.mysite.com外觀像這樣的,但我得到一個無限循環:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^jethro.mysite.com [NC] 
RewriteCond %{QUERY_STRING} ^$ 
RewriteRule (.*) http://jethro.mysite.com/?username=jethro&page_name=Home [P] 
RewriteCond %{QUERY_STRING} page_name=script 
RewriteRule (.*) http://gallery.mysite.com/ajax/dir/script\.php [P] 
RewriteCond %{QUERY_STRING} page_name=(.*) 
RewriteRule (.*) http://gallery.mysite.com/?username=jethro&page_name=%1 [P] 

如果我禁用了第5和第6行以上將不再做循環。請幫助我如何結合這些想法?謝謝!

回答

0

請嘗試以下操作。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^jethro.mysite.com [NC] 
RewriteCond %{QUERY_STRING} ^$ 
RewriteRule . http://jethro.mysite.com/?username=jethro&page_name=Home [P,L] 


RewriteCond %{QUERY_STRING} page_name=script [NC] 
RewriteRule . http://gallery.mysite.com/ajax/dir/script\.php [P,L] 

RewriteCond %{QUERY_STRING} page_name=(.*) [NC] 
RewriteCond %1 !=script   [NC] 
RewriteRule . http://gallery.mysite.com/?username=jethro&page_name=%1 [P,L] 

我還假設[p]是有意的,即你想代理請求。