2017-12-07 23 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を最後に置きます。私はこのエラーを与えています: 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によるエラー。あなたはそれを掘り下げるしようとすると、Apacheのログはこのエラーを示しています

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解析エンジンに再度渡されます。 2番目の試みでは、最初の条件(1.)は満たされますが、ルールパターン(2.)は満たされません。しかし、第2の条件(3.)は満たされ、ルール(4.)は満たされる。その後、要求URIは/vtc_manager/_pages/に書き換えられます。その後、書き換えられた要求が処理されます。

あなたがしようとしていることを理解するには、mod_rewrite moduleRewriteRule Flagsのドキュメントをよく読んでください。

関連する問題