2010-12-22 2 views
0

기본적으로 각 요청간단한 아파치 .htaccess RewriteRule

http://localhost/~lucamatteis/datadict/AccessionMainName 
실제로

http://localhost/~lucamatteis/datadict/index.php/AccessionMainName 
http://localhost/~lucamatteis/datadict/index.php/AccessionMainName 

여기 내 현재 .htaccess~lucamatteis/datadict/

RewriteEngine on 
RewriteBase /~lucamatteis/datadict/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 

아래에 물리적으로 위치하지만 불행히도이 작동하지 않습니다. 나는 모든을 시도했다. 이 시점에서 문제는 물결표를 사용하고 있거나 확실하지 않다는 것입니다.

로드 된 모듈 섹션 아래 phpinfo()mod_rewrite 섹션이로드됩니다. mod_rewrite가 작동하기 위해 여분의 것을 로딩 할 필요가 있을지 모르겠다.

어떤 아이디어?

+0

다시 쓰기를 디버깅하는 좋은 방법은 RewriteLog/RewriteLogLevel을 켜는 것입니다. http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritelog – webbiedave

+0

현재 상황을 볼 수 있도록 다시 쓰기 로깅을 사용합니다. 또한 "이것이 효과가 없다"는 의미를 설명해야합니다. 무슨 일이야? 전혀 아무 것도 일어나지 않는다면 무한한 것들이있는 것처럼 말하십시오. "이것은 효과가 없습니다"는 의미 일 수 있습니다. – Gerry

답변

2

먼저 아파치 구성 트로프 htaccess로 파일 (AllowOwerride 설정 지시어)를 오버라이드 (override) 할 수 있는지 확인하십시오.

그런 다음 완전히 RewriteBase 지시를 제거하려고합니다. 이 경우 현재 디렉토리가 기본 디렉토리로 사용됩니다.

+0

+1 RewriteBase 없애 조언. 나는 그것을 설정할 필요가 없다고 생각한다. –

0

변경 : 모든

/home/lucamatteis/public_html/datadict (or something similar) 

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteBase

+0

여전히 작동하지 않습니다. 나는 RewriteBase가 아파치 루트에 상대적이라고 생각한다. 그래서 대부분의 시간은'/'로 설정되어있다. 하지만 어쨌든, 작동하지 않습니다. –

0

나는 문제가 당신이 존재하지 않는 파일에 내부 리디렉션을하려는 생각 :

/home/lucamatteis/public_html/datadict/index.php/AccessionMainName 

의 index.php가 디렉토리와 AccessionMainName 파일입니다 경우에만 작동합니다.

그런 일은 할 수 없다고 생각합니다.

index.php?AccessionMainName 

... 당신은 $_GET['AccessionMainName']에서 읽기 : 시간의 대부분은, 쿼리 문자열 매개 변수를 사용하여 당신이 필요로하는 모두이다.