두 개의 개별 사이트를 가리키는 시작 페이지가있는 프로젝트가 있습니다. 사이트는 동일한 서버에서 호스팅되며 더 나은 유지 관리를 위해 별도의 폴더에 있어야합니다.하나의 도메인에서 3 개의 웹 사이트를 mod_rewrite로만 폴더에 매핑하는 방법은 무엇입니까?
폴더 구조가 같은 것을해야한다 :
/home/user1234/public_html
/splash/
index.html
css/
images/
...
/site1/
index.php
css/
images/
...
/site2/
index.php
css/
images/
...
주요 사이트 (사이트 1과 사이트 2는 아마 두 개의 워드 프레스 설치) URL 구조, NOT 하위 도메인과 같은 하위 디렉토리에 액세스 할 수 있습니다 ! 따라서 URL 구조는 다음과 같아야합니다.
이제이 URL을 서버의 해당 디렉토리에 일치시켜야합니다. 하지만 정확히 어떻게 해야할지 모르겠습니다. 공유 호스팅 서버라고해야만합니다. 따라서 htaccess와 mod_rewrite를 사용하여이 작업을 수행 할 수 있습니다.
웹 호스트의 관리 인터페이스에서 www.MySite.tld를/splash 폴더로 지정했습니다. 그런 다음 그 폴더에 htaccess로 넣어 같은/사이트 개발 및/사이트 2, 뭔가 "가상 폴더"에 요청을 다시 :
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(site1|site2)/?$ [NC]
RewriteRule ^(.*)$ /home/user1234/public_html/%1 [L]
이 작동하지 않는 내가 아는 한, 일 할 수 있기 때문에 mod_rewrite로만 현재 DOCUMENT_ROOT (/ splash) 외부의 파일에 다시 쓰지 않습니다. 그래서 나는 www.MySite.tld를/splash 대신/public_html까지 한 레벨 위로 향하게했습니다. 이제/site1 및/site2에 대한 요청은 확실히 작동하지만 위의 폴더 구조에서 볼 수있는 것처럼 인덱스 파일이 없으므로 기본적으로 404에 대한 요청/반환을 기본값으로 반환합니다.
이RewriteEngine on
RewriteCond %{REQUEST_URI} ^/?$ [NC]
RewriteRule ^(.*)$ /splash [L]
이제 시작 페이지 accessable 한 것입니다하지만 내가하지 무슨 URL의 끝에 "/ 시작"을 추가 : 그래서 나는 또한 다음과 같은 규칙을/public_html을에 htaccess로 한 단계 올려 필요!
나는 여러 시간 동안 해결책을 찾고 있었고 지금까지 발견 한 많은 제안을 시도했지만 이들 중 어느 것도 내 문제를 해결하지 못했습니다. 마지막으로 시도한 것은 virtual host with mod_rewrite을 설정하는 것이지만 너무 일하게 만들지 못했습니다. 아마도 mod_rewrite와이 모든 다른 아파치에 대해서 아직 충분히 확신하지 못했습니다. ;-)
아니면 올바른 RewriteBase를 설정하는 것과 같은 기본적인 기능이 누락되었습니다.이 url + 폴더 구조는 mod_rewrite로만 수행 할 수 있습니까? 그렇다면 어떤 재 작성 규칙을 설정해야합니까? 그렇지 않다면 사용할 수있는 대안이 있습니까? 어떤 도움이라도 대단히 감사하겠습니다.
이걸 http://webmasters.stackexchange.com으로 옮길 가치가 있습니다. – ninesided