나는 2 시간 동안이 작업을했지만 결국은 포기했다.
나는이 조건을 가지고 :
1. 사용자 요청 PHP 파일 리디렉션 경우 CMS/index.php를 요청 = $ (1)
2. PHP에서 다른 사용자의 요청 뭔가 (PNG, CSS, JPG)이 CMS를 리디렉션하는 경우/웹 사이트/$ 1
첫 번째 규칙은 작동하지만 두 번째 규칙을 적용 할 수 없습니다. 사용자가 /cms/style.css를 요청하면 Apache는 cms/website/style.css를 리디렉션하고 cms/website/website/style.css를 다시 리디렉션하고 루프를 반복합니다.htaccess redirect (루핑) 문제
내 htaccess로 파일은 해당 같다 :
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*\.php) /cms/index.php?request=$1 [L]
RewriteRule (.*\.!(php)) /cms/website/$1 [R,L]
참고 : 나는 마지막 정규식이 참인지 아닌지 모르겠어요. 그리고 그것은 500의 error_log 출력이 그것을 확인하기 위해 하드 그래서
"[Tue Aug 16 16:26:11 2011] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace."
아파치 로그 시행 착오를 많이있는 것입니다 반환하지만 그 두 번째 규칙은 무한 보인다 - 일치하는 경우. 모든 규칙은 리디렉션 ('[R]') 후에 다시 실행되어'/ cms/website/$ 1'가 규칙과 다시 일치하게되고'/ cms/website/cms/website/$ 1' 등으로 다시 전달됩니다. –
@robin, 실제로 [RewriteLooping] (http://wiki.apache.org/httpd/RewriteLooping)은 [R]을 사용하면 반복해서는 안된다고 말합니다. 그러나이 옵션을 설정하더라도 루프됩니다. 덕분에 –