루트 디렉토리의 파일로 리디렉션되는 하나의 하위 도메인에 대한 규칙을 만들고 싶습니다. 규칙이 일치하지 않으면 사용자가 원래 도메인으로 리디렉션되어야합니다.기존 파일에 대한 규칙이 작동하지 않습니다.
둘 다 하위 도메인과 도메인이 같은 디렉토리에 연결됩니다. 그러나 지정된 REQUEST_URI의 첫 번째 하위 디렉토리가 디렉토리의 파일 이름과 일치하면 내 규칙이 REQUEST_URI와 일치하지 않는 것처럼 보입니다.
는정보 :
- HTTP : //sub.domain.tld -> 루트 디렉토리는
- HTTP : //domain.tld -> 루트 디렉토리는
- 파일 test.php는 루트 레벨에 존재 디렉토리로 내용 : print_r ($ _ SERVER [ 'QUERY_STRING']); test.php 출력 "DIR = XYZ 데이터 = & 무언가"http://sub.domain.tld/xyz/something 함께
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} ^sub\. [NC]
RewriteCond %{REQUEST_URI} ^/([a-z]+)/ [NC]
RewriteRule ^test/ http://domain.tld/ [L,R=301]
RewriteRule ^([a-z]+)/(.*)$ test.php?dir=$1&data=$2 [L]
.
그러나 http://sub.domain.tld/test/something을 사용하면 빈 페이지 만 표시됩니다. 그러나 이것 역시 "dir = test & data = something"을 출력해야합니다.
내 실수는 무엇입니까? 내 규칙을 최적화 할 수 있습니까?
거기에있는 세 번째 규칙은 무엇입니까? (RewriteRule^test/...) – yoavmatchulsky
예, 두 번째 RewriteRule이 일치하지 않아 request_uri에서 파일 이름을 찾았습니다. 하지만 그것은 문제를 해결하기 위해 추가 한 첫 번째 RewriteRule입니다. 아직 성공하지 못했습니다. –
serverfault에 속해 있습니다. 이것은 프로그래밍 문제가 아니기 때문에 여기에서 주제를 벗어난 것입니다. –