本当に危険が伴うとは思わない。基本的には、Webサーバーへのアクセスをドキュメントルートに限定するのと同じように、Webサーバーに同じ信頼を置いています。しかし、考慮すべき点がいくつかあります。
最初に、.htaccessファイルのmod_rewriteルールセットは、特定性に関して選択的に評価されます。 URLが/category/path/であり、次のディレクトリ構造(すべての.htaccessファイルにmod_rewriteルールセットがあることが前提)の場合、.htaccessファイルはパス/に評価されます。
public_html/
|- .htaccess
|- category/
|- .htaccess
|- path/
|- .htaccess
これはなぜ問題なのですか?ドキュメントルートの上にあると想定されていたアプリケーションフォルダの1つに.htaccessファイルがある場合は、それに少なくともRewriteEngine On
が含まれていると仮定すると、ルート.htaccessファイルのRewriteRuleは適用されません。しかし、これは簡単に避けられます。
リクエスト(静的リソース用のリクエストを含む)はすべて、.htaccessファイルの解析にかかるオーバーヘッドを招くだけでなく、少なくとも1つの内部リダイレクトも行います。このオーバーヘッドは非常に重要であるとは考えていませんが、サイトのトラフィックが多い場合は、(軽度)顕著な影響を与える可能性があります。しかし、その時点では、とにかくより柔軟なホスティングに適しているため、このプロセスが不要になります。
これらの問題を念頭に置いて、効果的なドキュメントルートを変更するために書き直しを行うのは、あなたが悪いことではないと思います。何らかの理由で.htaccessファイルを壊してしまったとしても、mod_rewriteは設定が無効な場合に内部サーバエラーを投げます。あなたの唯一の懸案事項は、あなたが期待した以外の何かをしたルールでしょう。あなたは何
/.htaccess
RewriteEngine On
RewriteRule .* /www/$0
/www/.htaccess
RewriteEngine On
# Check if the original request was to /www/something and redirect
RewriteCond %{THE_REQUEST} ^[A-Z]+\s/www/
RewriteRule .* /$0 [R=301,L]
# The rest of your rules...
:
ことに関しては、私は次の変更を行うことをお勧めしたいです「フレーク」の意味ですか?また、いくつかのルールを追加することなく、あなたのパブリックコンテンツは 'example.com/www/index.php'などで見ることができます。大きな問題ではありませんが、特定のページを1つの有効なURLに制限することが望ましい場合があります。 –
@Tim Stone申し訳ありませんが、どういうリスクがありますか?* – alex