2010-05-22 5 views
0

아파치 설정 파일을 변경하지 않고 웹 루트로 /web 디렉토리를 설정할 수 있습니까?아파치 설정을 변경하지 않고 symfony 1.4를 사용하십시오.

다음의 .htaccess 코드를 사용해 보았습니다. 그러나 localhost/module/으로 이동하면 404 오류가 표시됩니다. 하지만 만약 내가 로컬 호스트/웹/모듈/ 다음 모든 작품.

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule sf/(.*) lib/vendor/symfony/data/web/sf/$1 [L] 
    RewriteRule ^$ web/ [L] 
    RewriteRule (.*) web/$1 [L] 
</IfModule> 

답변

0

짧은 대답 : 아니오.

조금 길어서 : 적어도 웹/디렉토리에 액세스 할 수있는 권한을 부여하려면 아파치 설정을 편집해야합니다. 따라서 웹 폴더를/var/www로 심볼릭 링크해도 작동하지 않습니다.

+0

내 웹 디렉토리 경로는/home/xx/public_html/web – Ragnis

+1

입니다. 그런 다음/home/xx/public_html을 웹 루트로 설정하지 않으시겠습니까? 코드를/home/xx에두고'$ this-> setWebDir'를 호출하도록 ProjectConfiguration을 편집 하시겠습니까? 작동하는 경우 내 대답을 업데이트 할 것입니다. – Maerlyn

+0

모든 심포니 파일을/home/xx/private_html /에두고 웹 폴더 내용 만/home/xx/public_html/ 에 남겨 두었습니다. 그러나 이제는 작동하지 않습니다. Symfony는 여전히/home/xx/public_html/폴더에서 파일을 찾고 있습니다. – Ragnis

0

내 질문이 Symfony on virtual host (document root problem)과 비슷합니다.

이 내 .htaccess 프로젝트 루트 디렉토리 : 이것은 내 문제를 해결하지만, 심포니 모든 URL을 생성하려고

RewriteEngine On 
RewriteBase/  

RewriteCond %{REQUEST_URI} ^/images/ [OR] 
RewriteCond %{REQUEST_URI} ^/js/  [OR] 
RewriteCond %{REQUEST_URI} ^/css/ 
RewriteRule ^(.*)$ /web/$1 [L] 

RewriteCond %{REQUEST_URI} !^/web/ 
RewriteRule ^(.*)$ /web/index.php [QSA,L] 

가 (. 예를 들어 url_for 사용) domain.com/my-article 같은 문서 루트 그래서 대신에 URL에서 생성 domain.com/web/my-article.
PatternRouting 클래스를 약간 수정하여 각 URL의 접두어 /web을 잘라내야했습니다. 나는 이것이 최선의 해결책이 아니라고 생각한다.

또한 백엔드 응용 프로그램에 액세스하려면 /web/backend.php/을 호출해야합니다. 왜냐하면 .htaccess에 많은 재 작성 규칙을 갖고 싶지 않기 때문입니다.

내 확장 PatternRouting 클래스 소스 코드를 보려면 여기에 붙여 넣으십시오.

1

내가 루트에 다음과 같이 수행

RewriteEngine On 
RewriteBase/
RewriteRule (.*) ./web/$1 [L] 

그리고 편집 웹/htaccess로는 'RewriteBase /'라인을 주석 처리.

이 모든 mysite.com/aaaa/bbbb을가

0

예, 그것은 가능하다 mysite.com/web/aaaa/bbbb처럼 작동합니다. 웹/레벨부터 문서 루트까지 모든 것을 복사하십시오. index.php를 편집하여 포함 된 모든 것이 현재 디렉토리보다 한 레벨 더 가깝다는 사실을 반영하십시오 (하나는 덜 ../). 다른 Symfony 파일 하나를 편집 할 필요는 없습니다.

관련 문제