2

私の主な質問は、セキュリティ上の理由から、.htaccessを使用してWebサイトファイルの名前を(ある意味で)仮想的に変更できるかどうかを知りたいということです。たとえば、ファイルが/index.phpあり、の呼び出し/mysiteがにリダイレクトされるようにしたいが、呼び出しがエラー/index.php403または404として返されるようにしたい場合。これは可能ですか?もしそうなら、それはどのように行うことができますか?また、.htaccessディレクティブ構文に関する完全なドキュメントを探していましたが、何も見つかりませんでした。私の2番目の質問は、すべてのディレクティブとその構文の優れた一般的な参照を知っている人はいますか?(w3schoolsでは見つかりませんでした)/index.php

4

1 に答える 1

2

最初に、w3schools には特に優れたリファレンスはありません。Apache mod_rewriteのドキュメントは非常に優れており、私はいつも最初にそこに行きます。

リクエストの最初の部分は、書き直しとして非常に簡単です。しかし、そこに到達する前に、 への直接リクエストを防止することから始めましょうindex.php。他のルールを台無しにすることなくこれを行うために、%{THE_REQUEST}変数を使用してindex.phpアクセスを照合し、禁止します。

RewriteEngine On

# If the request sent by the browser includes index.php...
RewriteCond %{THE_REQUEST} index\.php
# forbid access (403)
RewriteRule ^. - [F]

# Then you just need a generic rule to rewrite /mysite into index.php
RewriteRule ^mysite index.php [L]

THE_REQUESTindex.php に書き換える 2 番目の部分との競合を避けるために、最初の部分を使用する必要があります。

index.php存在しないように見せるために 404 を提供したい場合は[F][R=404,L]

于 2013-01-25T15:44:24.080 に答える