2012-01-07 4 views
2

원래 질문이 아니라는 것을 알고 있지만 여기에서 여러 게시물과 질문을 읽었지만 아직 이해할 수는 없습니다.아파치 및 htaccess에서 다른 폴더로 다시 작성/리디렉션

저는 localhost (아파치 서버)에 있고 기본 서버는/var/www에 있습니다. 여러 개의 하위 폴더가있는 '프로젝트'폴더가 있는데 그 중 하나는 index.php 파일이있는 웹이라고합니다. 이제 인덱스로 이동하려면 전체 URL localhost/project/web /를 사용해야합니다.

localhost/project로 이동하면 localhost/project/web /로 리디렉션되거나 url은 동일하게 유지되지만 더 좋게 만들려고합니다. (이 순진한 형식에 대해 유감스럽게 생각합니다.)

.htaccess에서 디렉토리 색인을 변경했지만 모든 링크 (상대적인 링크이기 때문에)가 작동하지 않습니다.

난은/var/www /에서 프로젝트에서이 htaccess로 시도 :

RedirectMatch permanent ^/$ ./web/ 
<Files .htaccess> 
order allow,deny 
deny from all 
</Files> 
Options -Indexes 

그러나/프로젝트는 (이 옵션 -Indexes로 인해 허용되지 않는 프로젝트 디렉토리를 나열하려고 localhost로가는 작동하지 않습니다 , 그것은 내가 원했던 것이다). 은 (htaccess로이 허용되는 경우)의 mod_rewrite가하는 것처럼 기본이없는 조언

답변

0

RedirectMatch에 대한 어디서나

감사를 작동해야하기 때문에 나는 그것이 URL에 'localhost를'독립적이어야 할 필요가있다.

RedirectMatch permanent ^/project/$ /project/web/ 

당신이없이 브라우저 리디렉션을 을 /project/web/index.php로 이동하고 싶었다면합니다 (의미 :가/프로젝트 디렉토리에 htaccess로 파일의 경우에도 전체 URI 필요 mod_rewrite는이 htaccess로 파일에있는 기본 URI를 사용하는

RewriteEngine On 
RewriteRule ^$ web/index.php [L] 

주 (그러나 "접두사 : 브라우저에 URL 표시 줄에 주소는 내부적으로 URI 사용의 mod_rewrite를 다시 작성할 필요)/로컬 호스트/프로젝트에서 유지 "또는 슬래시가 제거됨).

+0

감사합니다. 첫 번째는 잘 작동합니다. rewriteengine이 "내부 서버 오류"를 발생 시키지만 문제가되지 않습니다. 첫 번째 오류는 정상입니다. – ladar

관련 문제