2014-09-04 4 views
1

다음과 같이 .htaccess 파일을 설정하면 .php 확장자를 숨김으로써 우아한 URL을 만들 수 있습니다..htaccess를 변경하면 URL에서 .php를 건너 뛰고 일부 웹 페이지에서 오류가 발생합니다.

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

이제 내 모든 페이지는 3 개의 URL/페이지를 따르지 않고 작동합니다.

www.auroracs.lk/about 
www.auroracs.lk/enquiry 
www.auroracs.lk/locate 

상기 URL에 대해 다음과 같은 오류가 발생합니다. (현재 해당 URL을 사용해 온라인으로 확인하십시오)

.............................. 찾을 수 없습니다. 이 서버에서는 요청한 URL /about/.php를 찾을 수 없습니다. 또한 ErrorDocument를 사용하여 요청을 처리하는 동안 404 찾을 수 없음 오류가 발생했습니다. ..............................

about.php의 이름을 about1.php로 변경하면 www.auroracs .lk/about1 url works. 다른 두 PHP 파일도 마찬가지입니다. 아무도 왜이 세 페이지에서만 작동하지 않는지 도울 수 있습니까? 내 .htaccess가 다른 파일이나 충고와 충돌하여 감사하겠습니다.

답변

0

이 더 정확한 규칙에 의해 규칙을 바꾸기 :

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC] 
RewriteRule ^(.+?)/?$ /$1.php [L] 
+0

감사 답장을 많이. 이제는 페이지가 나오지만 스타일은이 세 페이지에 적용되지 않습니다. 그러나 differur URL이있는 동일한 페이지 (예 : www.auroracs.lk/about1)는 정상적으로 작동합니다. 더 이상 입력 할 때 www.auroracs.lk/about URL이 www.auroracs.lk/about/으로 바뀝니다. (뒤의 /에주의하십시오) 나는 왜 이것이이 세 URL에 대해서만 발생하는지 궁금합니다. 예를 들어 다른 URL에 대해서도 잘 작동합니다. www.auroracs.lk/bit –

+0

이러한 3 개의 URI가 발생하는 경우에만 해당 디렉토리가됩니다. css 문제를 해결하기 위해 단지 상대 경로가 아닌 css, js, images 파일에서 절대 경로를 사용하십시오. 즉,이 파일의 경로가'http : //'또는 슬래시'/'로 시작해야 함을 의미합니다. 페이지의 HTML 헤더에 이것을 추가 할 수 있습니다 :''. 그래서 모든 상대 URL은 현재 URL이 아닌 그 URL로부터 해석됩니다. – anubhava

+0

두 번 확인했는데 이름이 같은 폴더가 없습니다. 이전에 나는 현재 사이트를 업로드하기 전에 CPanel에서 softaculous 소프트웨어를 사용하여 제거한 루트에 WordPress 사이트를 설치했습니다. 가능한 캐싱 문제인지 확인하고 가능한 상대 경로를 두 번 확인합니다. 귀하의 조언에 감사드립니다. –

관련 문제