2013-02-28 3 views
0

과거에는 Google을 통해이 사이트를 몇 번 사용해 보았고 문제에 대한 유용한 도움을 얻었습니다. 이제 나는 내 자신의 질문을 등록하고 싶다. 그래서, "안녕 모두!"htaccess/rewriterule 및 가상 폴더

"문제"는 htaccess-rewriterule과 PHP/HTML을 포함합니다. URL이 "http://www.mydomain.com/showdata.php?ID=9"이고 다시 쓰고 싶다고 가정하면 "http://www.mydomain.com/person/firstname-lastname-9.php"입니다. 내 계획은 "사람"이 가상 디렉터리 일 뿐이라는 것입니다.

RewriteRule ^person/(.*)-(\d+)\.php$ /showdata.php?ID=$2 

새로운 URL은 MySQL의 데이터베이스의 오른쪽 항목에 이르게 : RewriteRule의 부분은 아무 문제가 없었다. 문제는 CSS 파일이로드되지 않고 네비게이션의 모든 링크가 "person"폴더를 가리키고 있다는 것입니다. htaccess가 브라우저를 서버의 실제 파일로 연결하기 때문에 가상 폴더에 "링크"할 수 있다고 생각했습니다. 나는 실제로 "person"폴더를 만들고 그것에 포함 파일을 복사 할 수 있지만, 그것은 내 소스 코드에서 많은 경로를 변경해야한다는 것을 의미합니다. 그건 지저분한 일이 많아서 나는 그것을 피하려고합니다. 가상 폴더 (키워드)가 있지만 기본 폴더의 파일을 PHP 스크립트에 포함시키는 방법이 있습니까?

+0

showdata.php로 다시 작성하지 않는 이유는 무엇입니까? 따라서 사용자는'http : // www.mydomain.com/person/firstname-lastname-9'을 보지만 서버는'http : //www.mydomain.com/showdata.php? ID = 9'를 보게됩니다 – Leeish

+0

찾고 있습니다 '' – mario

+0

에 대해 앵커 링크가있는 페이지가 있고 앵커에서 이 잘 작동하지 않는다고 읽었습니다. – Leveller

답변

0

나는 당신의 CSS/JS/이미지는 "CSS는"이름을 가진 폴더에있다 "JS", "이미지"

을 가정합니다 .. CSS, JS, 이미지에 대한 규칙을 더 추가 예 :

RewriteRule (.*)/(images|css|js)/(.*) /$1/$2 [L] 
# | means OR , [L] means last rule i.e. do not continue to process other rules after this. 
+1

그런 경우에'RewriteCond'가 더 쉬울 수도 있습니다. – mario

관련 문제