2012-08-16 5 views
0

내 .htaccess는 내가 원하는 것처럼 깨끗한 URL을 다시 쓰지 않습니다. 그것이 지시 한 것을하는 대신에, 그것은 나에게 404 에러를 준다!.htaccess는 필요에 따라 다시 작성하지 마십시오

난이 원하는 :

http://localhost/somepossiblepath 

이 라우팅 될 : 현재

http://localhost/index.php?route=somepossiblepath 

, 이것은 내 htaccess로 파일입니다

RewriteEngine On 

RewriteCond ${REQUEST_FILENAME} !-d 
RewriteCond ${REQUEST_FILENAME} !-f 
RewriteCond ${REQUEST_FILENAME} !-l 

RewriteRule ^/(.+)$ /index.php?route=$1 [QSA,L] 

나는 현재 스크립트 테스트에이 작동 여부를 확인하십시오 :

<?php echo $_REQUEST['route'] ?> 

/index을 입력 할 때 작동하지만 입력 할 때 작동하지 않습니다.

어떤 도움이 필요합니까?

답변

0

.htaccess 파일에서 규칙 정규식과 일치하는 문자열의 기본 디렉토리가 제거됩니다 (DOCROOT/.htaccess의 경우 /). 따라서 ^/(.*)$은 일치하지 않습니다. 필요한 것 : 예 :

RewriteEngine On 

RewriteRule ^index\.php - [L] 

RewriteCond ${REQUEST_FILENAME} !-d 
RewriteCond ${REQUEST_FILENAME} !-f 
RewriteCond ${REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ /index.php?route=$1 [QSA,L] 
+0

대머리 답을하는 것 이상을해야합니다. @nonplus는 아마도 당신이 앞의'/'를 삭제했다는 것을 알지 못할 것입니다. 나는 당신의 대답을 편집하여 내 뜻을 보여줍니다. – TerryE

+0

여전히 작동하지 않습니다 : ( – snnth

+0

자세한 내용은. 404 오류 또는 오류가 발생했습니다. – user1603541

관련 문제