2012-03-16 3 views
0

기본적으로 웹 서버는 모든 사이트가/var/www에 있지만 ~/public_html/sitename에서 개발할 수 있기를 원하지만 아파치에 있지만 링크는 설정되어 있습니다. 여전히/var/www 디렉토리 페이지로 이동하십시오.아파치에 대한 .htaccess userdir의

나는 모든 링크를 변경할 수 있지만 htaccess가 더 쉬울 것이라고 생각합니다.

그래서 내 질문은, 그것은 말할 수 있습니다 :

을 우리는 example.com/~jackyyll/project를 통해 액세스 가정 내 public_html이있는 폴더가

그 모든 요청을하려면 프로젝트가 ~/jackyyll/project/request_here로 리디렉션됩니다.

.htaccess에서 몇 가지 시도를했지만 아무 것도 작동하지 않습니다.

감사

+0

mod_rewrite를 사용하는 것과는 대조적으로 [mod_userdir] (http://httpd.apache.org/docs/2.1/mod/mod_userdir.html)이 실제로 작동하는지 살펴야한다고 생각합니다. –

답변

0

당신이 mod_userdir를 사용하지 않을 경우, 간단한 AliasMatch 트릭을 할 수 있습니다. 여기에 내가 /home/kaz/public-www/www.kylheku.com/~kaz/를 매핑하는 데 사용하는 것입니다, 등등, 직선에서 내 httpd.conf :

# /~user/blah goes to /home/user/public-www/blah 
AliasMatch ^/~([a-z]+)/(.*) /home/$1/public-www/$2 

# /~user and goes to /home/user/public-www/ 
AliasMatch ^/~([a-z]+)$ /home/$1/public-www/ 

AliasMatch는 URL의 서버로 들어오는 일부 단지 Alias처럼 제외하고, mod_rewrite을 닮은 기능 그것이 무엇 그것이하여 소요를 가지고 있으며, 경로에 매핑합니다. 출력은 요청 처리 체인으로 다시 주입되지 않습니다. Alias 또는 AliasMatch으로 매핑 된 모든 URL은 VirtualHost -s와 그 docroots를 우회합니다. 이것은 특별한 예외 메커니즘과 같습니다.

사용자의 public-www 디렉토리에있는 .htaccess은 정상적으로 작동합니다. 나는 거기에 RewriteRules 다른 cruft있다.

물론 이것은 mod_userdir보다 훨씬 간단합니다. 모든 가능한 사용자 이름을 존재 여부와 관계없이 모든 가능한 userdir 디렉토리에 매핑합니다. mod_userdir에는 어떤 사용자가 userdir을 가지고 있는지 제한하고, 다른 userdir은 특정 사용자를 제한하는 것과 같은 더 많은 종소리와 휘파람이 있습니다.

관련 문제