.htaccess无限循环如何停止
问题描述:
我有几个.htaccess规则我想合并。这里是什么,我想完成的要点:.htaccess无限循环如何停止
jethro.mysite.com - >重定向到 - > gallery.mysite.com/?username=jethro & PAGE_NAME =首页 (注:PAGE_NAME是=首页如果尚未指定)
jethro.mysite.com/ajax/dir/script.php - >重定向到 - > gallery.mysite.com/ajax/dir/script.php
否则就是像正常一样处理。例如: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行以上将不再做循环。请帮助我如何结合这些想法?谢谢!
答
请尝试以下操作。
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]是有意的,即你想代理请求。