2010-06-07 6 views
1

다음 두 로컬 호스트 사이트의 .htaccess 파일입니다.404 오류 발생 Mod_rewrite

가상 호스트 1 (mysite1.com) : 그러나

# this is the initialization 
Options   +FollowSymLinks 
RewriteEngine On # Turn on the rewriting engine 
RewriteRule ^news-07/?$ news_01_06_2007.php [NC,L] 
# Handle requests for "news" 
RewriteCond %{REQUEST_FILENAME} !-s 
RewriteRule ^(.*)\.php$ $1 [nc] 
#RewriteRule ^(.*)\.php$ http://mysite1.com/$1 [R,NC] 

, 나는 http://www.mysite1.com/testfile.php을하려고 할 때 - 그것은 무엇을해야으로이 메시지가 표시되는 것을 제외하고, http://mysite.com/testfile로 리디렉션 :

찾을 수 없음
요청한 URL/testfile을이 서버에서 찾을 수 없습니다.

어떻게하면이 오류 메시지가 해결되고 .htaccess 파일이 제대로 작동합니까?

나는 거미류 등을 차단하는 것과 관련하여 .htaccess를 잘 이해하고 있지만이 문제는 나에게 몇 가지 문제를 일으키고 있으며, 누구나 잘못된 점을 알고 있으며 앞으로이 오류가 다시 발생하는 것을 막을 수 있습니까?

모두에게 감사드립니다.

+0

음을 잃게하기 위해서는 필요하다, 그건 'xyz.php'를'xyz'로 다시 씁니다. 어쩌면 다른 방식으로 해보기를 원하십니까? –

+0

아니요, 저는 xyz.php를 xyz에 쓰려고했습니다. 그러나 그런 파일이없는 것처럼 처리했습니다. 내가 뭘 잘못했는지 확실하지 않습니다 ... – whitstone86

+0

달성하려는 것은 무엇입니까? 'xyz.php'를'xyz'에 다시 쓰면 아파치는 서버에서'xyz'라는 파일을 찾을 것입니다. 이것은 존재하지 않을 가능성이 있습니다. 관련된 PHP 스크립트를로드하는 예쁜 URL을 얻으려고합니까? –

답변

0

나는 그것을 거꾸로하려고 생각할 수도 있습니다. .PHP 파일을 사용하지만 클라이언트가 요청에 동의를 주장하는 모든 파일을하지에만 작동합니다

Options +MultiViews 

이와 MultiViews

RewriteCond %{REQUEST_FILENAME} !-s 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ $1.php [nc] 
0

켭 같은 것을보십시오. here을 참조하십시오. 아파치의 잘못 구성된 구성으로 인해 과거에 MultiViews에 나쁜 이름이 붙어 있다는 것을 유의하십시오. here을 참조하여 Apache를 올바르게 구성했는지 확인하십시오. 당신이 재 작성 규칙을 사용하려면

, 내가 대신 (안된)이 작업을 수행 할 것 :

RewriteCond $0 !\.[a-zA-Z0-9]+$ 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^.*$ $0.php [QSA] 

QSA 플래그가 그렇지 쿼리 문자열