2014-08-27 2 views
1

godaddy에 대한 계정이 있습니다. 경로 끝에 mod_rewrite 스크립팅을 사용하여 웹 사이트 URL에 .php 확장자를 두려고합니다. 작동 안됨. 여기에 있습니다 :mod_rewrite를 사용하여 요청에서 .php 확장자를 제거하십시오.

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^([^\.]+)/$ $1.php 

내가 포함되지 않은 것이 있거나 그 스크립트의 오류가있는 경우 알아 내십시오.

이 문제와 관련하여 여러 가지 유사한 게시물을 검토했지만 아무도이 문제를 해결하는 데 도움이되는 답을주지 못했습니다. 당신이 MultiViews 옵션 (아파치 내용 협상)를 사용하는 경우

+0

정확한 입력 URL은 무엇입니까? 'RewriteRule'은'/'후행을 기대합니다 –

+0

간단한 URL, 예를 들어 foo.com/index.php는 foo.com/index – Hossam

+0

이 될 것입니다. 이제 mod_rewrite가 어떻게 작동하는지 알 수 있습니다. 당신이 훨씬 더 많은 일을하지 않는 한,/index에 /index.php에 대한 요청을 적극적으로 변경하지 않을 것입니다. (저스틴의 답변 에서처럼). 일반적으로'/ index'를'/ index.php'로 자동 변경하는데 사용됩니다. –

답변

1

당신은 모두 /page/page.php

Options +MultiViews 

에 도달 할 수있을 것입니다하지만 당신은 단지/page을 원하는 (그리고 /page-/page.php 리디렉션) 경우 당신은 그것을 할 수 있습니다 이쪽

Options -MultiViews 
RewriteEngine On 

RewriteCond %{THE_REQUEST} \s/([^/]+)\.php [NC] 
RewriteRule . /%1? [R=301,L] 

RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ /$1.php [L] 
+0

저는 서버 관리 작업에 매우 익숙하며 .htaccess 파일에서 스크립트를 사용해 보았습니다. 그것은 결국 작동하지 않았다. .htaccess 파일이 잘못된 디렉토리에있을 수 있습니까 (웹 사이트의 루트에 있습니다)? 또한 mod_rewrite를 올바르게 사용하는 방법을 설명하는 온라인 리소스가 있습니까? – Hossam

+0

죄송합니다. 모든 것을 변경하는 슬래시를 잊어 버렸습니다. 나는 그것을 테스트하고 그것을 작동, 당신은 내 편집 된 코드로 다시 시도 할 수 –

+1

, 고마워요! – Hossam

관련 문제