2012-09-15 5 views
0

나는 내 사이트에서 .php를 없애기 위해 영원히 노력했다. example.com/about.php 대신 example.com/about처럼 보이기를 원합니다. 나는 그것을 example.com/about로 입력 할 수 있도록 재 작성하지만 example.com/about으로 이동하기 위해 내 웹 사이트의 링크를 클릭 할 때 필요하다. .com/about 및 example.com/about.php가 아닙니다. 전반적으로 나는 누군가가 내 페이지에 아무 것도로드 할 때마다 url의 끝이 .php를 갖도록하려고한다. 내 htaccess로 지금 Info with mod_rewrite .htaccess

RewriteEngine on 

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

감사합니다, 그래서 것 같습니다.

답변

0

이 시도 : 그것은 단순히 확장자없이 "http://x.com/page"의 형태로 URI를 "잘못된"대상으로

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

당신은 사이트의 구조를 변경할 필요가 없습니다 것입니다 결국. 희망은 내가 도왔다!

0

하지만 난 그것을 example.com/about로 이동 내 웹 사이트에 대한 링크를 클릭 할 때이었다하고자는 example.com/about로 URL을로드하고

을 example.com/about.php하지

사이트의 링크를 example.com/about.php에서 example.com/about으로 변경해야합니다. "야생 상태"의 링크가 여전히 .php 개의 URL을 가리키는 경우에도 리디렉션을 수행 할 수 있지만 사이트의 링크를 변경하여 확장 프로그램을 제거하지 않으면 모든 페이지로드가 서버에 두 번 치게됩니다. 리디렉션에 관해서는

:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.+)\.php[\?\ ] 
RewriteRule^/%1/ [L,R=301] 

난 당신이 슬래시에 대한 일치하고 있기 때문에 규칙이 다시도 작동하고 PHP 확장을 넣어하는 방법을 잘 모르겠어요하지만 당신은 사용하여 파일을 검사 할 때 -f, 파일 이름에 슬래시가 있습니다. 예 :

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^/(.+?)/? 
RewriteCond %{DOCUMENT_ROOT}/%1.php -f 
RewriteRule^/%1.php [L] 
: /some/path/to/the_file/.php 대신 시도

/some/path/to/the_file.php