2013-03-25 4 views
1

URL에서 파일 확장자를 제거하는 방법을 알아 내려고하고 있습니다. www.website.com/index.php를 변경하여 www.website.com/index를 표시하려고합니다. URL에서 스트립 파일 확장자

이 나는 ​​이상한의 CSS를 제거처럼 실제로 보이는, 내가 htaccess로 파일에이 코드를 연결하면이 그것을 수행하는 모든 내 웹 사이트를 왜곡입니다

RewriteRule ^about$ about.php [L] 

작동하도록하기 위해 노력 해왔다 ..

저는 웹 사이트를 로컬로 실행하고 있습니다.

어떻게 작동시킬 수 있습니까?

+1

중복 [숨기기 페이지 확장 (처럼에 StackOverflow)]의 루트에 .htacess하기 (http://stackoverflow.com/q/1759420/209139) 또는 [.htaccess를 사용하여 .php URL 확장명을 숨기는 방법은 무엇입니까?] (http://stackoverflow.com/q/10028025/209139). – TRiG

+0

나는 그 코드를 시험해 보았고 더 이상 오류가 발생하지는 않지만 확장 기능은 여전히 ​​존재합니다. –

+1

이'.htaccess' 스크립트는 페이지가 파일 확장자없이 *와 *로 작동하도록합니다. 확장자가있는 페이지는없는 페이지로 리디렉션하지 않습니다. 파일 확장명을 포함하지 않도록 링크를 변경하면 모든 것이 작동합니다. – TRiG

답변

3

이것은 대부분 스타일 시트 연결에 상대 경로를 사용했기 때문에 발생했을 수 있습니다. 예 : http://example.com/about/css/style.css :

<link rel="stylesheet" type="text/css" href="css/style.css" /> 

당신이 http://example.com/about/ 방문

는 웹 브라우저에서 스타일 시트를 찾고 있습니다.

는이 문제를 해결 웹 루트에서 시작 절대 경로를 사용하려면 :

<link rel="stylesheet" type="text/css" href="/css/style.css" /> 

참고 : 당신은 아마뿐만 아니라 이미지에 대한 절대 경로를 사용해야합니다. 이 줄을 추가

+1

답변을 게시 한 후에 귀하의 질문을 완전히 바꾸는 것은 속성 예의는 아니지만 Apache에서 mod_rewrite를 사용하지 않도록 설정하면 내부 서버 오류 문제가 발생할 수 있습니다. 그것이 맞는지 확인할 수 있습니까? –

+0

스타일이 잘 작동했다가 서버 오류가 발생했습니다. 질문을 변경하면 더 이상 가지고 있지 않은 문제가 제거되었습니다. 나는 그것이 있는지보기 위해 점검 할 것이다. –

+0

변경했습니다. #LoadModule rewrite_module modules/mod_rewrite.so 은 LoadModule rewrite_module modules/mod_rewrite.so에 리셋하고 wamp를 재설정합니다. 아직 아무것도 :/ –

0
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

시도는 사이트의