2012-06-06 3 views
0

mod_rewrite를 사용하여 내가 가지고있는 동적 URL을 정리하려고합니다.mod_rewrite로 404 받기

다음과 같이 사이트의 루트에 내 htaccess로는 다음과 같습니다

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^equipment/AlarisSystem/([^/]*)/([^/]*)$ /equipment/AlarisSystem/?manu=$1&model=$2 [L] 

내가 내가 내가 얻을 위의 "깨끗한"주소를 입력한다면 http://www.mysite.com/equipment/AlarisSystem/?manu=test1&model=test2에서 http://www.mysite.com/equipment/AlarisSystem/test1/test2

에 다시 할 404 오류. 나는 연구를했으며, 내가 잘못 가고있는 곳을 찾을 수 없다. 그리고 예, mod_rewrite가 사용 가능합니다. 당신의 도움을 주셔서 감사합니다.

편집 내 .htaccess 파일을 읽는 중입니다. 나는 이것을 확인했다 :

Redirect /google.html http://www.google.com 그리고이 규칙은 올바르게 작동한다.

답변

1

규칙은 정확하지만 올바른 장소로 다시 작성하지는 않았을 것입니다. 다시 쓰고 자하는 스크립트는 어디에 있습니까? 디렉토리로 다시 작성하는 것 같습니다.

아마 추가로 적용해야하는 다시 쓰기 규칙이 있습니다.이 경우 last rule [L] 플래그를 제거해야합니다. mod_rewrite가 있으면 규칙 적용이 중지됩니다.

검색어가 걸려 있는지 여부를 확인하려면 RewriteLogRewriteLogLevel 지시어를 설정하면 도움이됩니다.

빠른 확인을 위해 [R] 플래그를 설정할 수도 있습니다. 그러면 브라우저에서 mod_rewrite가 사용자에게 보내는 메시지를 볼 수 있습니다.

업데이트 : 원래 규칙도, 디렉토리에 index.php 파일과 나를 위해 작동하지만, 아마 당신은 try using a RewriteBase이 해결할 수 있습니다 : 그 규칙에 대한 이유를 볼

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteBase /equipment/AlarisSystem/ 
RewriteRule /([^/]*)/([^/]*)$ index.php?manu=$1&model=$2 [L] 

을 일하지 않기. 원본 오류는 아마도 재 작성을 수행하는 위치와 관련이 있습니다. 이는 루트의 .htaccess 파일에서 온 것입니다.

+0

그건 의미가 있습니다. 그러나 작동하지 않습니다. 이 재 작성 규칙을 vhosts 파일에 두어야합니까? – mdance

+0

질문을 오해 한 적이 있습니까?/앞에. 내가 편집 할게. – mpontes

+0

감사합니다. 기꺼이 편집을 기다리고 있습니다 :) – mdance

관련 문제