하위 디렉토리가 아닌 현재 디렉토리에서 .htaccess 작업을하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/1200348

  •  05-07-2019
  •  | 
  •  

문제

Mod Rewrite를 사용하여 웹 사이트의 루트 디렉토리에서 간접적으로 내 PHP 파일에 액세스하고 있습니다. 현재 나는 이와 같은 것이 있습니다.

RewriteRule ^(blog|about|page3|etc)$ /$1.php [L]

그러나 내가 사용하고 싶은 것은입니다

RewriteRule ^(.*)$ /$1.php [L]

웹 사이트에 새 페이지를 추가 할 때마다 .htaccess 파일을 업데이트 할 필요가 없습니다. 그러나 문제는 내 하위 디렉토리에도 영향을 미친다는 것입니다. CSS, JavaScript, 이미지는 "/dir/example.png.php"로 리디렉션되므로 접근 할 수 없습니다.

그렇다면 여기서 가장 좋은 솔루션은 무엇입니까?

도움이 되었습니까?

해결책

이 규칙을 시도하십시오.

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.php -f
RewriteRule .* $0.php [L]

다른 팁

편집 .htaccess 이에:

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

다시 쓰기 엔진을 시작한 후 먼저 요청 된 파일이 시스템의 실제 파일인지 또는 실제로 디렉토리인지 확인합니다. 그렇지 않은 경우 규칙을 실행합니다.이 경우에는 추가로 파일을 찾아야합니다. .php 그리고 그것을 제공합니다.

하위 디렉토리, 이미지, CSS 등은 발견되면 다시 쓰기에서 벗어나기 때문에 괜찮습니다.

하위 다이렉터를 무시하기 위해 필터로 할 것입니다. 그렇게하면 하위 폴더를 추가하는 경우에만 변경하면됩니다. 같은 줄을 추가해야합니다 셀레폴더에 이미지 나 다른 파일이있는 경우

다음은 "이미지"및 "js"하위 폴더를 무시하고 다른 모든 것을 방향 처리합니다.

RewriteRule   ^images*   -  [L]
RewriteRule   ^js*       -  [L]
RewriteRule   ^(.*)$     /$1.php   [L]

이와 같은 것 (참고!) :

RewriteRule !\.(js|ico|gif|jpg|png|css|zip|gz|html|xml)$ index.php
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top