簡體   English   中英

Apache mod_rewrite無限循環,無法修復

[英]Apache mod_rewrite infinite loop, cannot fix it

我的htaccess:

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ([^/.]+)/([^/.]+)(.*) /Application/?path=$1/$2$3 [L,QSA]
RewriteRule ^$ /Application/?path=ACFrontPage/getMainPage [L,QSA]
RewriteRule (.*) /Application/index.php?path=$1 [L,QSA]

此行導致無限重定向:

RewriteRule (.*) /Application/index.php?path=$1 [L,QSA]

但是如果以前的規則不匹配,我需要將所有內容重定向到index.php文件。 我該怎么做?

從日志中這樣做:

split uri=/Application/?path=Application/ -> uri=/Application/, args=path=Application/&path=Application/&path=Application/&path=Application/&path=Application/&path=Application/&path=Application/&path=Application/&path=Application/&path=Application/

========================

@anubhava

我嘗試了您的建議答案,它適用於除基本域以外的所有內容,例如: http : //example.com/

RewriteCond僅適用於下一個RewriteRule 調整規則,以避免重寫所有現有文件或目錄:

RewriteEngine On

RewriteRule ^$ /Application/?path=ACFrontPage/getMainPage [L]

# skip rewrite for all files/directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^([^/.]+)/([^/.]+)(.*)$ /Application/?path=$1/$2$3 [L,QSA]

RewriteRule ^(.+)$ /Application/index.php?path=$1 [L,QSA]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM