2013-06-28 9 views
1

저는 인터넷에서 포괄적 인 .htaccess 가이드를 찾아 보았습니다. 그래서이 사이트에있는 사용자 중 한 명이 내가 설명이 필요한대로 구성 할 수 있는지 궁금 해서요. 나 자신을 분류해라. 내가 할 필요가 무엇.htaccess를이 사양으로 어떻게 구성합니까?

은 내가 대단히 감사하겠습니다 도움이 될 수 있다면

http://www.url.com/view/{id} 

실제로

http://www.url.com/home.php?p=10&id={id} 

이 될 것입니다.

+0

당신은 아파치의 mod_rewrite 모듈에 대해 배울 필요가있다. '.htaccess'는 아파치를위한 일반적인 목적의 디렉토리 접근 행위 설정 파일입니다. – sgnsajgon

답변

0

Apache 서버에서 작동하도록 Mod_Rewrite 모듈을 배포하고 구성해야합니다. 그런 다음 .htaccess 파일에 다음 줄을 추가합니다 :

RewriteEngine on 
RewriteBase/

RewriteRule ^view/(.+) /home.php?p=10&id=$1 [L] 
+0

감사! 나는 초기 슬래쉬를 제거해야했지만, 이것이 효과적이다. '(. +)'는 변수가'.htaccess'에서 선언되는 방식입니까? – Rob

+0

(. +)은 일치 패턴입니다. '.' "임의의 문자"와 일치하고, "+"는 "1 이상"을 의미합니다. 내 대답에는 "0 이상"이라고 말하는 '*'를 사용했습니다 (가능성 여부와 상관없이 귀하의 질문에 확신이 없었습니다). 규칙의 끝에서 [L]은 이것이 마지막 리디렉션 규칙임을 나타내므로 URI가이 규칙과 일치 할 때 더 이상의 리디렉션 처리가 없습니다. – Nathan

+0

'(. +)'는 정규 표현식에서 사용되는 구성이며, mod_rewrite 모듈이 활용합니다. mod_rewrite 나'.htaccess'의 사용법을 알고 싶다면 먼저 Regular Expressions에 대한 튜토리얼을 읽어야합니다. – sgnsajgon

1

는 당신이 나와있는 사양을 제공합니다 루트 웹 디렉토리에 htaccess로 파일에 다음과 같은 배치. 여기

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteBase/

    # (optional) do not rewrite if the request points to an actual file or directory on disk 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 

    # rewrite the request 
    RewriteRule ^view/(.*) /home.php?p=10&id=$1 [L] 
</IfModule> 

위대한 참조 : http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule

관련 문제