2017-12-19 4 views

답변

1

에서 만든 htaccess로 가리 키도록,이 될 수 있습니다 .htaccess 파일의 최소 재 작성 (heh)으로 수행됩니다. 우리는 여기 재 작성 두 가지 일을하는지

RewriteEngine On 

RewriteRule ^/foo/help/(.*)? /foo/help.php?q=$1 
Rewriterule ^blog/(.*)? blog/index.php?id=$1 

: 예를 들어, 웹 루트 /var/www/html에 저장이 .htaccess 파일을 가지고

  • www.example.com/foo/help/123 -> wwww.example.com/foo/help.php?q=123
  • www.example.com/blog/myarticle -> www.example.com/blog/index.php?id=myarticle

공지를 처음 RewriteRule 절대 경로를 사용하는 반면 두 번째 경로는 상대 경로를 사용합니다. 내가 /var/www/html/foo/.htaccess에 처음 RewriteRule를 이동한다면

파일은 다음과 같이 보일 것이다 : 아무것도 변경할 필요가 없다는 것을

RewriteEngine On 

RewriteRule ^/foo/help/(.*)? /foo/help.php?q=$1 

참고, 당신은 절대 경로를 사용하고 있기 때문이다. RewriteRule에서

RewriteEngine On 

RewriteBase /blog/ 
RewriteRule ^(.*)? index.php?id=$1 

주 경로가 현재 디렉토리에 그들을 상대하게 제거하고, 지금이다 : 나는, 파일과 같을 것이다 /var/www/html/blog/.htaccess에 두 번째 RewriteRule를 이동한다면 이제

/blog. 하위 디렉토리에서 상대적인 다시 쓰기 규칙을 사용할 때 필요합니다. RewriteBase 지시문에도 유의하십시오.

서브 디렉토리 .htaccess 다시 쓰기 규칙을 사용하는 다른 예는 this question을 확인하십시오.

관련 문제