>백엔드 개발 >PHP 튜토리얼 >URL 재작성을 구현한 후 CSS, JS 및 이미지 로드 문제를 해결하는 방법은 무엇입니까?

URL 재작성을 구현한 후 CSS, JS 및 이미지 로드 문제를 해결하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-02 09:37:10603검색

How to Fix CSS, JS, and Image Loading Issues After Implementing URL Rewriting?

URL 재작성: CSS, JS 및 이미지 로드 실패 해결

.htaccess에서 URL 재작성 규칙을 구현할 때 일반적인 문제가 발생합니다. CSS, JS 및 이미지와 같은 외부 자산이 올바르게 로드되지 않는 경우. 이는 리디렉션이 발생할 때 URI 기반이 변경되었기 때문일 수 있습니다.

초기 해결 방법은 페이지의 URL에 관계없이 자산의 위치를 ​​확인하는 절대 경로를 사용하는 것입니다. 그러나 이를 위해서는 모든 파일을 지루하게 수정해야 하므로 신뢰할 수 없는 솔루션이 됩니다.

대체 접근 방식은 .htaccess 규칙을 활용하여 일관된 기본 URI를 설정합니다.

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteRule ^detail/([0-9]+)/?$ detail.php?id=

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/css/
RewriteCond %{REQUEST_URI} !^/js/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /detail/123/ [R=307,L]

이 규칙은 모든 파일이 외부 자산은 /detail/123/ URL에서 참조됩니다. [R=307,L] 플래그는 요청을 올바른 기본 URI(/detail/123/)로 리디렉션하여 절대 경로를 요구하지 않고 자산 로딩 문제를 효과적으로 해결합니다.

이와 함께 다음을 추가할 수 있습니다. <베이스> 내의 태그 페이지 요소:

<base href="/detail/123/">

이렇게 하면 기본 URI가 더욱 견고해지고 상대 경로가 올바르게 작동할 수 있습니다. 이러한 규칙을 구현하면 개별 파일을 편집할 필요 없이 URL 재작성을 유지하여 원활한 사용자 경험을 보장할 수 있습니다.

위 내용은 URL 재작성을 구현한 후 CSS, JS 및 이미지 로드 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.