2012-01-17 3 views
4

인터넷 검색을 통해 아무데도 나를 이끌지 못하는 재 작성 규칙에 약간의 문제가있었습니다. 나는이 같은 URL 설정의 표준 재 작성이 :이 사이트는 DB에서 관련 콘텐츠를 요청하는 content의 값을 사용.htaccess Rewrite - 매개 변수와 동일한 이름의 파일이 존재하는 경우 실패합니다.

RewriteRule ^services/(.*)/ /services/index.php?content=$1 [L] 

을하지만, 단지 URL 예뻐 보이게; 표준 물건. 이것은 어느 정도 효과가 있습니다. 예를 들어 URL이 /services/testimonials/ 인 경우 규칙이 올바르게 작동합니다. 내용이로드되고 페이지가 정상적으로 표시됩니다. 그래도 약간의 URL을보고 무엇인지 (예를 들어 /services/training/는)라는 오류였다

Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0 Fatal error: Unknown: Failed opening required 'redirect:/services/index.php' (include_path='[removed]') in Unknown on line 0 

많이 나는 /services/Training/의 URL을 변경 한 경우 나는 것을 발견 인터넷 검색 및 헤드 (하나의 작은 진전과) 두드리는 후합니다 (통지 자본화 된 T) 효과가 있었다. 이것은 곧 URL에서 무언가와의 갈등에 대한 생각으로 이어졌습니다 (아마도 나는 처음으로 생각해야 할 것입니다). 어떤 URL이 작동했는지, 어떤 URL이 작동하지 않았는지 확인한 후, 서브 디렉토리에 같은 이름의 파일이 URL과 동일한 경우 점을 연결하고 깨진 URL을 찾았습니다. 그 문장은 혼란 스럽다. 기본적으로 URL /services/training/을 사용할 수 없으므로 오류가 다시 발생하는 파일 /services/training.php이 있습니다.

URL과 충돌하는 파일의 이름을 바꾸는 것이 분명한 수정이지만, 동일한 이름을 가진 파일을 무시하도록 다시 작성할 수있는 방법이 있습니까?

+2

[this] (http://stackoverflow.com/questions/7722846) 도움이 될까요? 그 질문에서 받아 들여지는 답은 "Line 0"은 대개 스크립트 실행을 시작하기 전에 PHP로부터 에러가 발생하기 때문에 서버 설정 오류를 나타냅니다. 아파치 오류가 아닌 PHP 오류가 발생한다는 것을 알 수 있습니다. 이는 PHP가 아파치에 의해 해고되었다는 것을 의미합니다. – DaveRandom

+0

감사합니다 @DaveRandom, 해결 된 문제는 PHP 오류가되는 것이지만 약간의 차이가 있습니다. –

+0

이전 경로를 변수로 추가하지 않고 리디렉션을 시도해 보셨습니까? 어쨌든'$ _SERVER [ 'REDIRECT_URL']'에서 읽을 수 있습니다. – Ranty

답변

5
Options -MultiViews 

이렇게하면 url이 training.php로 매핑되지 않습니다. 그러나 /services/training.php이 매핑되지 않도록 방지하지는 않겠지 만 문제가되지 않습니다.

+0

가장 간단한 답변이 항상 가장 좋습니다. Thanks @ Gerben –

+1

+1 나는 이것을 잊어 버렸다고 믿을 수 없다. 몇 년 전만해도'mod_rewrite'를 시작하는 데는 시간이 걸렸습니다. –

+0

@ ÁlvaroG.Vicario 문제의 해결 방법으로이 한 줄의 코드를 게시 한 횟수가 재밌습니다. – Gerben

관련 문제