2014-06-18 2 views
0

현재 현재 하위 디렉토리에 설치하는 것을 지원하지 않는 웹 응용 프로그램 (Elastik)을 사용하고 있습니다. 현재 서버에서 하위 도메인을 만들 수 없기 때문에 모든 링크 된 파일이 루트 디렉토리와 관련하여 지정되므로 다시 쓰기 규칙을 사용하여 해당 디렉토리에서 참조 된 모든 요청을 다시 리디렉션 할 수 있는지 궁금합니다. . 나는 몇 가지 시도를 해본 결과, 이것이 내가 가진 가장 가까운 것이라고 생각한다 :디렉토리에 대한 새로운 문서 루트를 시뮬레이트하는 Apache Rewrite

RewriteEngine on 
RewriteBase /elastik/ 
RewriteCond %{REFERER} ^http://localhost/elastik/.*$ 
RewriteRule ^/(.*)$ $[1] 

하지만 여전히 작동하지 않는다! 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?

답변

1

나는 이것을 htaccess와 php를 사용하여 알아 냈습니다. 나는 다른 사람이이 상황에 빠져있는 경우에 여기에 남겨두고, 인터넷에서 어떤 도움도 찾을 수 없었다.

첫째, 모든 일반적인 웹 사이트 파일을 하위 디렉토리로 이동해야한다. 파일은 다음과 같아야하므로, 이러한 목적을 위해 "정상"이라고했습니다 :

>public_html 
    >normal 
     >index.php 
     >other 
     >files 
    >elastik 
     >all 
     >elastic 
     >files 

이제 다음과 같습니다으로 public_html에 index.php 파일에 이르기까지 모든 리디렉션 .htaccess 파일 생성 :

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule . index.php [L] 

그런 다음 public_htm의 index.php 파일 L 디렉토리는 다음과 같이 보일 것입니다 :

<?php 
if(isset($_SERVER['HTTP_REFERER'])){ 
    if(strpos($_SERVER['HTTP_REFERER'], "localhost/elastik")){ 
    header("Location: /elastik".$_SERVER['REQUEST_URI']); 
    } 
    else{ 
    $uri = $_SERVER['REQUEST_URI']; 
    header("Location: /normal".$uri); 
    } 
} 
else{ 
    header("Location: /normal".$uri); 
} 
?> 

내 PHP를 다시으로 public_html 디렉토리에, 문서 루트에 ralation에서 언급되는 포함 이동했다,하지만 난 그 한 후, 다른 모든 원활

를 실행
관련 문제