리디렉션 규칙이 조금 잘못되었습니다. 긴 연설보다 더 리틀 예를 들어, 여기에 큰 추함을 간다 :다시 쓰기 규칙의 하위 도메인 재사용
IndexIgnore *
ErrorDocument 404 http://www.example.com
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^([^\.]+)\.example\.com$ http://example.com/private/$1/public/si.php [L]
내 목표는 하위 도메인 ([^\.]+)
을 얻고 $1
대신 리디렉션에 사용하는 것입니다.
http://example.com/private/test/public/si.php
어떤 도움 주셔서 감사에 예를 들어, test.example.com
리디렉션합니다.
감사합니다, S.
최종 작업 htaccess로 :
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{REQUEST_URI} !^/private/
RewriteCond %{HTTP_HOST} ([^\.]+).example.com [NC]
RewriteRule^/private/%1/public/$1 [R=301,L]
이 anysub.example.com/anypage
필터링하는 방법은 RewriteCond를 사용하는 경우, 나는 무엇 rewriterule의 패턴을 사용하지 않습니다. 설명해 주시겠습니까? 또한 브라우저에서 표시되는 URL이 짧은 것 (예 : test.example.com) 이었으면 좋겠다. 그것은 번역 된 것처럼 보이므로 완전한 것을 보여줍니다. – Sebas
@Sebas'^'문자는 단지 "URI의 시작"을 의미합니다. 실제로는. *와 다를 바 없습니다. 본질적으로 모든 것과 일치합니다. 브라우저를 리디렉션하지 않으려면 (** 리디렉션 ** 항상 ** 브라우저의 URL 주소 표시 줄에있는 내용을 변경하십시오) 규칙 대상에서 http : // example.com을 제거하십시오. –
완벽, 재귀적인 리다이렉션과 보일을 피하기 위해 필터를 추가해야했습니다! 당신의 도움을 주셔서 감사합니다 – Sebas