2014-10-15 4 views
0

도메인이 example.com이며 클라우드 플레어에 설정되었습니다. 하지만 cloudflare를 사용할 필요가 없으므로 up.example.com 하위 도메인을 만들고 cloudflare를 사용하지 않습니다. 그리고 나는 그것을 메인 도메인에 주차시킨다. 즉, example.comup.example.com은 루트 사이트를 가리 킵니다. SEO에서 중복되는 콘텐츠를 보호하려면 .htaccess 파일이 필요합니다.하위 도메인 와일드 카드 .htaccess for escape cloudflare

이 항목은 나를 위해 중요 : 메인 도메인에서

  • 모든 URL은 (example.com) 오픈 액세스 할 수 있어야합니다.
  • 기본 페이지가 하위 도메인 (up.example.com)으로 열리지 않고 기본 도메인 (example.com)으로 열려 있습니다.
  • upload 컨트롤러의 모든 주소는 하위 도메인에서 액세스 할 수 있어야합니다. 예를 들면 다음과 같습니다. up.example.com/upload/
  • 컨트롤러 (내 작업)의 단어 뒤에는 az, 0-9가 포함됩니다 (파일을 가리키는 데 점을 사용하지 않기 때문에)
  • 다른 URL 정보 경로는 하위 도메인에서 액세스 할 수 없어야하며 404 오류가 발생해야합니다.

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^up\..+ [NC] 
    RewriteCond %{REQUEST_URI} !^(/upload/?[a-z,A-Z,0-9]*)$ [NC] 
    RewriteRule . - [R=404,L,NS] 
    
    # Hide index.php , this used for YII PHP Framework 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . index.php [L,QSA] 
    

    을하지만이 코드에서 내 문제는 다음과 같습니다 :

  • 이 들어

, 나는 여기에 코드를 작성

  • up.example.com =이>를 엽니 다! 하지만 열지 않아야합니다.
  • up.example.com/upload/test => 나를 Not Found. The requested URL /index.php was not found on this server.으로 보내야하지만 열어야합니다.

참고 :에 대한 또 다른 URL에이 오류 메시지가 /upload/test.jpg 정확하게 지적에 나는, 내가 Not Found. The requested URL /upload/test.jpg was not found on this server. 오류 메시지가 up.example.com/upload/test.jpg 예를 들어, 올바른 404 오류가 발생하지만 오류에 대한 up.example.com/upload/test 메시지가 index.php 파일을 가리키고 있습니다!

수정 .htaccess 코드를 알려주십시오.

+0

이유는 너무 많은 요구 사항이 하나의 질문에 곤봉이 있다는 것입니다. 그것을 단순화하려고 노력하십시오. – anubhava

답변

0

this link의 도움말로이 문제를 해결합니다.
그냥 !^index\.php$를 사용해야합니다 대신 .

보정 코드 :이 질문은 답이 남아있는 이유

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^up\. [NC] 
RewriteCond %{THE_REQUEST} \s/+index\.php[?\s] [NC] 
RewriteRule ^index\.php$ - [R=404,L,NC] 

RewriteCond %{HTTP_HOST} ^up\. [NC] 
RewriteCond %{REQUEST_URI} !^(/upload/?[a-z,A-Z,0-9]*)$ [NC] 
RewriteRule !^index\.php$ - [R=404,L,NC] 

# Hide index.php , this used for YII PHP Framework 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . index.php [L,QSA] 
관련 문제