2014-04-08 2 views
1

제목에 대한 어휘가 다소 어처구니 없지만,이 작업이 어떻게 작동하는지는 상당히 흥미 롭습니다.파일 이름의 URL 재사용을 기본 매개 변수로 다시 작성하십시오.

내 루트 폴더에 .htaccess가 있다고 가정합니다.

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

예를

를 들어 나는이 어떤 내용으로 구성이 URL을 가지고있다. 내가 다른 페이지로 이동하면

www.myurl.com/foo 

는 그런 다음

www.myurl.com/foo/bar 

그래서 의미처럼, 나는이 foo 자신의 기지로 한 번 내가 다른 페이지로 리디렉션 사용하고있을 것이다.

그래서 루트 폴더의 내 구조 ..입니다

index.php 
foo.php 
bar.php 

그래서 www.myurl.com/foo 경우 나는 foo.php을 여는거야,하지만 나는 foo.php의 파일 이름의 염기 bar.php 개방하고있어 www.myurl.com/foo/bar에 액세스하는 경우. 논리적으로 그것이 잘못되었다고 생각합니다.

하지만이 방법이 있습니까? 내가 캠페인의 하위 페이지로 이동하면 실시간 라이브 원하는 결과가

..

www.myurl.com/campaigns

이 어떤 도움이

www.myurl.com/campaigns/create

을 감상 할 수있을 것입니다.

답변

1

이렇게하려면 라우터가 필요합니다. Apache 재 작성 도구는이 문제를 혼자 처리하는 데 적합하지 않습니다. 일반적으로 전면 컨트롤러 (index.php라고도 함)를 사용하여 모든 URL을 매개 변수로 전달하여 모든 내용을 다시 작성합니다. 프론트 컨트롤러는 라우터를 시작하여 요청을 처리 할 올바른 컨트롤러를 시작합니다.

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php [QSA,L] 
</IfModule> 

어떻게 모든 작품의 일반적인 생각의 Symfony book의 첫 번째 챕터를 Symfony router component 한 번 봐, 읽기 :

귀하의 .htaccess는 다음과 같이 보입니다.

0

어쨌든, @ Blan Agee의 답변 주셔서 감사합니다.

URL 재 작성에 대해 이야기하는 훌륭한 사이트를 발견했습니다. 특히 나를 포함하여 어떻게 작동하는지조차 모르는 사람들에게 특히 좋습니다.

관심있는 사람에게는 다음 링크를 참조하십시오.

http://coding.smashingmagazine.com/2011/11/02/introduction-to-url-rewriting/

그것은 매우 이해하기 쉽다.

내 문제에 대한 해결책은 여기 있습니다.

RewriteEngine On 

RewriteRule ^campaigns/?$    src/campaigns/index.php [NC] 
RewriteRule ^campaigns/create/?$   src/campaigns/create.php [NC] 

그리고 나는 또한 이해에 대한 링크

#RewriteRule ^campaigns/create/(.+)$ src/campaigns/create.php?cid=$1 [L] 

에 매개 변수를 넣어하려는 경우, 위의 링크를 참조하시기 바랍니다. : D

관련 문제