우리는 특정 URL이 호출 될 때 표시되어야하는 클라이언트 용 웹 응용 프로그램을 만들었습니다. 다른 모든 URL은 기존 Typo3 설치에서 처리해야합니다. 아쉽게도 Apache2 구성에 액세스 할 수 없기 때문에 다시 쓰기 로그에 액세스하거나 VirtualHost 정의를 변경할 수 없습니다.Apache2 htaccess 다중 규칙
은 htaccess로는 다음과 같이 약 같습니다
RewriteEngine On
# http://example.com/sub/foo/
RewriteCond %{REQUEST_URI} ^/sub/foo/.*
RewriteRule .* special.php [L]
# http://example.com/sub/bar/year/2014/
RewriteCond %{REQUEST_URI} ^/sub/bar/.*
RewriteRule .* special.php [L]
# Everything else should be typo3
RewriteRule .* general.php [L]
그러나 모든 통화는
general.php
파일로 라우팅됩니다.
this page에 따르면 .htaccess는 예상대로 작동해야합니다. 서버는 Apache 2.2입니다.
아이디어가 있으십니까?
- 일반한다. php는 url이 무엇이든 관계없이 항상 호출됩니다. 나도 이해하지 못한다. 왜 두 번째 규칙에서 URL이'special.php'로 다시 작성되어야 하는가? 첫 번째 규칙이 일치하지 않는다면, 왜 그렇게 될까? 첫 번째 규칙이 일치하면 [L] - 플래그는 평가되는 모든 항목에서 두 번째 다시 쓰기 규칙을 중지해야합니다. – Lars
'[L] -flag는 평가되는 모든 것에서 두 번째 다시 쓰기 규칙을 중지해야합니다. '이것은 오해의 소지가 많은 사람들입니다. 'L' 플래그는'mod_rewrite'가 루프를 다시 실행하도록 만합니다. 따라서 2 차 요청 uri는'special.php'가되고 결국에는'general.php'로 다시 작성됩니다. – anubhava
내 업데이트 된 규칙을 사용해보십시오. 작동하지 않으면 작동하지 않는 URL을 제공하십시오. – anubhava