2012-09-03 3 views
0

현재 내 사이트에 문제가 있습니다. 다른 사람이 http://mysite.com/index.php을 입력하면 정상적으로 작동하고 index.php가 표시됩니다. 그러나 누군가가 http://mysite.com/index.php/을 입력하면 index.php는 대부분의 이미지를 잃어 버리지 만 폴더가 아닌 것처럼 작동합니다. 이것은 모든 .php 파일에서 발생합니다.PHP - 뒤에 슬래시 (.php /)를 추가하면 페이지에 오류가 표시됩니다.

그러나 다른 사이트에서는이 문제가 발생하지 않습니다. 나는이 htaccess로 코드를 사용하는 생각을 해 봤는데 :

# Remove garbage info after .php 
RewriteRule ^([^.]+\.php)[/.] http://www.example.com/$1 [R=301,L] 

내 질문은 기본적으로 ...이 문제에 대한 최선의 해결책은 무엇인가? 또한 위에서 언급 한 thae htaccess RewriteRule을 사용하면 /test.php?id=5와 같은 페이지가 /test.php (기본적으로 .php 다음의 모든 내용이 제거됨)로 제거됩니다.

감사합니다,
마크

답변

0

이 귀하의 사이트에 대한 단일 진입 점을 만드는 다루는 가장 좋은 방법.

그래서, 당신의 .htaccess에 당신은 쓸 수 :

RewriteEngine On 

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

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

는 이제 index.php를 항상 입력하고 거기에서 당신은 당신이 좋아하는 것을 URL을 수행 할 수 있습니다

$url = rtrim($url, '/'); 
$request = explode('/', $url); 

tutorial/blog을보십시오.

+0

글쎄,이 문제는 index.php에만 존재하지 않는다. 내 모든 .php 파일에 대해 존재한다. : – Mko

+0

JvdBerg의 솔루션은 모든 페이지/PHP 파일을 캐치하여 index.php 이 파일은 기존 index.php가 아닌 새로운 파일이 될 것입니다. – Springie

관련 문제