http://test.server/
を私の現在のWebサーバーとして試してみると、ホームページのコードを保持するHomepage
というフォルダがあります。 Homepage
フォルダには、のようないくつかのフォルダがあり、ファイルには.htaccess
のファイルがあり、deny from all
です。 Homepage
で、私は以下の内容と同様、非常に長い.htaccess
を持っています:予期しない要求処理が既存のフォルダの部分文字列で行われました
<IfModule mod_speling.c>
CheckSpelling off
CheckCaseOnly off
</IfModule>
Options -MultiViews
RewriteEngine On
RewriteBase /Homepage
ErrorDocument 403 /Homepage/403
ErrorDocument 404 /Homepage/404
# Block direct access to files and directories in these directories
RewriteCond %{REQUEST_URI} !\.(?:jpe?g|gif|bmp|png|tiff|css|js|ico)$ [NC]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(Forbidden) - [NC,F]
# Deny access to configuration files
<Files ~ "\.ini">
Order allow,deny
Deny from all
</Files>
# Remove index.php
RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(.*?)index\.php$ /$1 [L,R=301,NC,NE]
# Redirect Trailing Slashes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([\w-]+)/([\w-]+)/?$ index.php?page=$1&id=$2 [L,QSA,NC]
RewriteRule ^([\w-]+)?/?$ index.php?page=$1 [L,NC,QSA]
は、私がアクセスhttp://test.server/Homepage/Templates/
にしようとすると、これは403エラーを呼び出し、/Homepage/403
で説明指定ErrorDocument
が適切に示され(と私によって解析されますバックエンド)であり、まだhttp://test.server/Homepage/Templates/
にあります。私はhttp://test.server/Homepage/Template/
、http://test.server/Homepage/Temp/
のような保護されたフォルダのサブがされているURLにアクセスしよう
しかしは、サーバ等はhttp://test.server/Template/
またはhttp://test.server/Temp/
にを(!)リダイレクトしていなかった一般的な404ドキュメントを示し私が.htaccess
をルートフォルダに持っていないので、セットアップが必要です。私は、例えばhttp://test.server/Homepage/Temp/
にある間、403が正しく動作するように、404のためのErrorDocument
が表示されることを期待していました。これは、私のindex.php
のハンドラに送信されることさえありませんが、ルートフォルダにいくつかのフォールバックルールを見つけることを試みていると思われるApacheによって直接処理されることを意味します。
私が行った間違いは何ですか?.htaccess
?
これは意図したとおりに動作しているようですが、本当にありがとうございます。実際に私をこの時に書いたのはあなたです。http://stackoverflow.com/a/33220616/796036 –
実際に私はチェックしましたその答えも。その答えは、.htaccessがルートにある場合のものですが、ここでは '/ Homepage /'にあります。とにかく私が提案したこの新しいルールは、.htaccess – anubhava