2013-07-16 6 views
0

로컬 및 스테이징 서버에 웹 응용 프로그램 설정이 있습니다. 로컬 응용 프로그램은 스테이징과 다른 기본 경로를가집니다. 예 : http://myserver.com/myproject/html/htaccess 다른 경로로 폴더 다시 쓰기

내가 'HTML'부분없이 URL을 액세스 할 수 있도록 사용 htaccess로 부탁 준비

지역 http://phils-imac.local/git/clients/myproject/html/

. 예 : http://phils-imac.local/git/clients/myproject/ http://myserver.com/myproject/

내 준비 서버에 재 작성 규칙을 사용하고 있습니다 : 그것은 확인을 작동하지만 내가 느끼는

RewriteEngine On 
RewriteCond %{SERVER_NAME} =myserver.com 
RewriteCond %{REQUEST_URI} !^/myproject/html/.*$ 
RewriteRule ^(.*)$ /myproject/html/$1 [L] 

나는 각 프로젝트에 맞게 사용자 정의 할 필요가있다. 이상적으로는 'myproject'부분을 변수로 사용하고 규칙이 더 일반화되어 있으므로 로컬 경로에서도 작동합니다.

+0

귀하의 질문은 무엇입니까? "myproject"대신에 변수를 어떻게 사용합니까? " 이 변수의 출처는 어디입니까? 귀하의 예제에서와 같이 규칙이 로컬 경로에서 작동하지 못하게하는 유일한 방법은 명시 적으로 'RewriteCond % {SERVER_NAME} = myserver.com' 행을 사용하지 않는 것입니다. – IMSoP

+0

위의 재 작성 규칙은 http : //phils-imac.local/myproject/ 대신 http : //phils-imac.local/git/clients/myproject/로 다시 작성됩니다. myproject를 변수로 바꾸고 싶습니다. 규칙이 절대적인 것뿐만 아니라 다른 경로로 작동하도록하십시오. – fatlinesofcode

답변

0

당신은 당신의 .htaccess에서 변수를 정의 할 수 있지만이 같은 프로젝트 이름을 유지하는 경우 당신이 필요한

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_URI} !/html/ [NC] 
RewriteRule ^(.*?)/?myproject/(.*)$ $1/myproject/html/$2 [NC,L] 

같은 재 작성 규칙에서 변수 기본 경로를 수용 할 수 .htaccess 웹 루트 디렉토리에 . 당신의 .htaccessmyproject 폴더 안에있는 경우,이 시도 : 두 경우

RewriteEngine On 

RewriteCond %{REQUEST_URI} !/html/ [NC] 
RewriteRule ^(.*)$ html/$1 [L] 

을, 당신은 당신의 지역 및 준비 위치간에 일치하지 않을 것로 %{SERVER_NAME} 체크를 삭제해야합니다.