2011-12-18 4 views
0

나는 다시 쓰기 규칙에 약간의 문제가 있습니다. 그래서 내가하려고하는 것은 이것입니다;sub-domain 하위 도메인에 mod-rewrite 하위 도메인

[이름] .domain.com에/파일에/[이름] .domain.com에/사용자/[이름]/파일

[이름] 예를 들어, 서브 도메인 이름이다

"닉" . 중요한 부분은 요청에 하위 디렉토리가 포함 된 경우에만 리디렉션이 발생해야한다는 것입니다. 파일 /.

예 Google에서 하위 도메인과 하위 디렉토리 리디렉션 및 하위 디렉토리를 다른 하위 디렉토리 리디렉션과 관련된 예로 볼 수 있지만 그 둘을 조합해서 사용할 수는 없습니다.

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com$ [NC] 
RewriteRule ^files/(.*)$ /users/%1/files/$1 [L] 

나는 당신이 당신의/사용자에 www을 가지고 있지 않은 것으로 가정/그래서 !^www\. 조건을 추가 :

답변

2

문서 루트에 htaccess로 파일에 이러한 규칙을 넣어보십시오. 일 경우 www.domain.com에 대한 요청이/users/www /로 이동하기를 원한다면 해당 행을 삭제하십시오.

+1

잘 했어 +1 ...'RewriteRule'의 마지막에'QSA' 플래그가 있습니다. (모두 아로마가 원하는 것에 달려 있습니다) –

+0

**? ** isn이 없을 때 쿼리 문자열이 자동으로 추가됩니다. 규칙의 목표에 존재하지 않습니다. 룰의 타겟이'/ users/% 1/files/$ 1? redir = no' 또는 무엇인가라면'QSA'가 필요합니다. –

+0

알아요.하지만 '?'다음에 매개 변수가있는 다른 URL이 있다고 가정합니다. 이 규칙을 통과하면 매개 변수가 손실됩니다. 따라서 모든 것은 아로마가하기를 원하는 것에 달려 있습니다. 이전에 모든 매개 변수를 삭제하고 새 매개 변수 만 적용하거나, ** 또는 ** 이전 매개 변수를 유지하고 새 매개 변수와 혼합하십시오. –

관련 문제