2017-12-07 1 views
1

.htaccess가 어떻게 작동하는지 배우는 것에 익숙하지 않으며 원하는 방식으로 작동하도록 고민 중입니다..htaccess, 하위 디렉토리 숨기기

RewriteOptions inherit 

#ErrorDocument 404 https://tsrvtc.com/_pages/404page.html 
#ErrorDocument 500 https://tsrvtc.com/_pages/500page.html 
#ErrorDocument 403 https://tsrvtc.com/_pages/403page.html 

<IfModule mod_rewrite.c> 
RewriteBase/
RewriteEngine on 

RedirectMatch 301 ^/?$ https://www.tsrvtc.com/index 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.*)$ $1.html 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+_pages/([^\s]+) [NC] 
RewriteRule^%1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (?!^_pages/)^(.*)$ /_pages/$1 [L,NC] 
# 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+vtc_manager/([^\s]+) [NC] 
RewriteRule^%1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (?!^vtc_manager/)^(.*)$ /vtc_manager/$1 [L,NC] 

RewriteCond %{HTTP_HOST} ^tsrvtc\.com$ [NC] 
RewriteRule ^(.*)$ http://www.tsrvtc.com/$1 [R=301,L] 

</IfModule> 
AuthName "public" 
AuthUserFile "/home/tsrvtcco/.htpasswds/public_html/passwd" 

그것은 현재 URL에 _pages 디렉토리를 숨기고 작동하지만 나는 vtc_managerm 디렉토리를 숨기려고 할 때 다음 내 도메인으로 리디렉션 디렉토리 내에서 페이지를 고토 : 여기

내 현재의 .htaccess 파일입니다 이름 끝에 index.php를 넣습니다. 의 I는이 오류를 부여하고있다 : https://gyazo.com/0cc504188657beafd2042d6332e4bd9b 여기

는 디렉토리의 레이아웃입니다 :

public_html 
    _pages 
    vtc_manager 

모든 지원이 크게 감사합니다.

+0

vtc_manager에 액세스 할 때 요청 URL 예를 들려 줄 수 있습니까? – Ben

+0

안녕 벤, 내가 사용하고있는 URL은 www.tsrvtc.com/vtc_manager/index.php입니다. index.php 파일은 vtc_manager 디렉토리에 있고 public_html 디렉토리에는 index.html이라는 홈 페이지가 있습니다. 나는 심지어 index.html을 home.html로 이름을 바꾸려고했지만 여전히 그는 나에게 gyazo 링크의 오류를 주었다. –

+0

당신은 당신이 무엇을 기대하는지 설명 할 수 있습니까? '/ _pages'와'/vtc_manager'의 별칭으로'/'를 동시에 만들려고합니까? – Ben

답변

0

잘못 구성된 .htaccess로 인한 오류입니다. 당신이 그것을 파고하려고하면 아파치 로그는이 오류를 보여줍니다

Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

이러한 조건과 규칙에 의해, 무한 리디렉션을 만들고 있었다 : 당신이 / 및 파일이있는 요청을

1. RewriteCond %{REQUEST_FILENAME} !-f 
2. RewriteRule (?!^_pages/)^(.*)$ /_pages/$1 [L,NC] 

3. RewriteCond %{REQUEST_FILENAME} !-f 
4. RewriteRule (?!^vtc_manager/)^(.*)$ /vtc_manager/$1 [L,NC] 

루트 디렉토리에없는 경우 첫 번째 조건 (1.)이 충족되고 규칙이 충족됩니다. 요청 uri는 /_pages/으로 다시 작성됩니다. 다시 작성된 요청이 처리 된 다음 URL 구문 분석 엔진으로 다시 전달됩니다. 두 번째 시도에서는 첫 번째 조건 (1.)이 충족되지만 규칙 패턴 (2.)은 충족되지 않습니다. 그러나 두 번째 조건 (3.)은 충족되고 규칙 (4.)은 충족됩니다. 그런 다음 요청 URI가 /vtc_manager/_pages/으로 다시 작성됩니다. 그런 다음 재 작성된 요청이 처리됩니다.

당신이하려는 것을 이해하기 위해서는 mod_rewrite moduleRewriteRule Flags의 문서를 자세히 읽어야합니다.

관련 문제