it-gundan.com

개발 워크 스테이션 및 서버에 대한 Apache 재 작성 규칙

개발자가 WAMP 스택에서 여러 사이트의 페이지를 편집 한 다음 LAMP 스택을 실행하는 공용 서버에 업로드했습니다. 우리는 그것에 매우 만족하지만,이 사소한 성가심이 있습니다. 개발 및 프로덕션 환경에서 동일한 .htaccess 파일을 사용할 수는 없습니다. 공용 사이트에서 원본 폴더는 http://foo.com, http://bar.com 등으로 매핑됩니다. 개발자 워크 스테이션에서 소스 폴더는 http://localhost/foo, http://localhost/bar 등으로 매핑됩니다. 즉, 공용 서버에는 RewriteBase /가 필요하지만 개발자 워크 스테이션의 각 사이트는 RewriteBase /foo/, RewriteBase /bar/ 등을 사용합니다.

.htaccess 파일을 기준으로 RewriteBase를 지정하는 방법이 있습니까? 다시 쓰기 규칙을 더 이식성있게 만드는 방법에 대한 다른 아이디어가 있습니까?

궁금한 점이 있으면 다시 쓰기 규칙을 사용하여 CakePHP 라우팅 코드로 리디렉션하므로 규칙은 다음과 같습니다.

RewriteRule ^(.*)$ cake_main.php?url=$1 [QSA,L]

개발자 워크 스테이션에서 /foo/의 RewriteBase를 사용하지 않으면 /cake_main.php 대신 /foo/cake_main.php에 다시 씁니다.

7
Don Kirkby

이것에 대한 나의 해결책은 다시 쓰기 규칙을 망쳐 놓지 않고 가짜 TLD가있는 별도의 로컬 도메인/호스트를 내 PC에 추가하는 것이 었습니다.

C:\Windows\System32\drivers\etc\hosts 파일을 편집하면됩니다.

Windows 7 (및 Vista)에서는이 파일을 성공적으로 편집하려면 텍스트 편집기를 관리자 권한으로 실행해야합니다.

다음과 같은 줄을 사용하여 호스트를 추가 할 수 있습니다.

127.0.0.2       www.mysite.local
127.0.0.3       www.myothersite.local

이러한 도메인 이름이 설정되면 이러한 도메인 이름으로 Apache를 구성 할 수 있습니다.

물론, 이것은 로컬 네트워크의 다른 컴퓨터에서 제대로 테스트하는 데는 효과가 없지만 그러한 상황에서는 로컬 DNS 서버를 사용하거나 호스트를 로컬 비 이동식 IP 주소에 할당하는 것이 좋습니다. 모든 PC에서 파일을 동기화하십시오.

4
JasonBirch