2011-09-22 4 views
0

앞으로 mod_rewrite를 사용하여 친숙한 URL을 사용할 수 있습니다. 내 모든 localhost dev에 테스트 임. 환경, 그러나 운이 모듈을 작동시키는 것을 얻지 않고있는 Im! mod_rewrite 오류 : [클라이언트 127.0.0.1] 파일이 존재하지 않습니다.

내 모듈

가 활성화되어 (아파치를 다시 시작) :

mod_rewrite.so라는 이름의 파일이 내 아파치 설치 디렉토리 나는 아래의 .htaccess라는 파일을 만들었습니다

을에서 모듈 폴더 아래에있는

LoadModule rewrite_module modules/mod_rewrite.so 
C :으로 public_html/

테스트 목적으로

, 필자과 같이 내 첫 번째 규칙을 생성/:

RewriteEngine On 
# Translate my-product.html to /product.php?id=123 
RewriteRule ^my-product\.html$ /product.php?id=123 
테스트 목적으로 16,

는 product.php은 매우 간단하다 : 내가 로그를 볼 갈 때

The requested URL /my-product.html was not found on this server. 

, 난을 참조하십시오 :

<?php 
    // display product details 
    echo 'You have selected product #' . $_GET['id']; 
?> 

나는 오류를 얻을 http://localhost/my-product.html를로드 할 때

[Thu Sep 22 02:37:49 2011] [error] [client 127.0.0.1] File does not exist: C:/public_html/my-product.html 

.htaccess 규칙을 전혀 인식하지 못하는 것 같습니다.

다음에 무엇을해야할지 모르겠다. mod_rewrite를 시작하기 위해 모든 간단한 규칙을 적용했지만 느낄 필요는 없다.

도움말! 당신은 어떻게 볼 수

감사 마르코

답변

4

httpd.conf 파일의 Allowoverride 속성을 'All'로 변경 했습니까?

서버에서 mod-rewrite가 활성화되어 있는지 확인하려면 phpinfo 파일을로드하고 mod_rewrite 확장자를 검색하십시오.

+0

첫 번째 작업을 수행했습니다. 속성을 모두로 변경 한 후 작동했습니다. 이제 라이브 사이트가 공유 호스트에 있습니다. 일반적으로이 속성은 공유 호스트에서 기본적으로 활성화됩니까? – Marco

+1

예, 일반적으로 대부분의 호스팅 서비스에서 이러한 속성은 기본적으로 설정됩니다. 그래서 걱정할 필요가 없습니다. – Goysar

+0

당신은 구세주입니다! –

1

당신은 mod_rewrite 로깅을 구성해야합니다. 설명서에서 RewriteLog 지시문을 찾으십시오.

처음에는 로그 수준을 9 (학습용)로 설정할 수 있습니다. 파일이 비어있는 한 이미 의심되는 것처럼 .htaccess은 무시됩니다.

.htaccess에 쓰레기를 쓰면 전혀 해석되지 않는지 확인할 수도 있습니다. 이 경우 500 Internal Server Error이 표시됩니다. 그렇지 않은 경우 htaccess 파일을 허용하려면 C:/public_html 디렉토리를 구성해야합니다. 설명서의 Options 지시문을 참조하십시오.

관련 문제