今回は、htaccessファイルを作成してリダイレクト処理を実装していきます。
https://hasethblog.com/it/programming/php/6526/
.htaccessで特定のファイル以外リダイレクトする処理
まずは、sns_trainingフォルダ直下に【.htaccess】ファイルを作成しましょう。
フォルダ構成がわからない方は下記リンクをご参考ください。
フォルダ構成
まずは、htaccessにどのような動作をしてほしいか要件をまとめます。
・sns_training/~にアクセスがあれば、すべてindex.phpにリダイレクト。
・画像やcss、jsやデータ定義ファイルは除く。
・index.phpにアクセスがあればリダイレクトは除く。(ループ防止)
リダイレクト先を作成
今回はindex.phpにリダイレクトをする設定にするため
index.phpファイルをsns_trainingフォルダの直下作成。
わかるように ”index.phpページです。”と記述しました。
sns_training
├── index.php
└── .htaccess
.htaccessに記述
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/sns_training/index.php$
RewriteCond %{REQUEST_URI} !^.*\.(gif|jpg|jpeg|png|swf|css|js|json)$ [NC]
RewriteRule ^(.*)$ sns_training/index.php
</IfModule>
上記のように記述をすると要件を満たした設定が反映されます。
リダイレクトテスト
実際にリダイレクトされるかテストします。
ローカル環境下にあるので
http://localhost/sns_training/test
でアクセスします。
下の画像のように問題なく表示されました。
また、画像や指定したファイルはリダイレクトされない設定もきちんと反映されていますね。
おわりに
Apacheで使われるhtaccessという設定ファイルは、アクセスを制御する重要なファイルです。SaaSで使うぐらいですが。(本来、httd.confに記述した方がよい)
設定一つでセキュリティが脅かされることは当たり前のようにあります。
趣味レベルならよいですが、損害が出る場合は必ず、セキュリティ要件を満たす必要があります。
セキュリティは日々強固になっている一方で攻撃手法も増えています。
個人で学ぶのは至難の業です。
テックキャンプならプロの講師から徹底的なサポートで、プログラミングスキルを身につけることができます。
興味のある方はぜひ、無料カウンセリングでご相談してみてください。
オンラインカウンセリングについて詳しくみる
コメント
[…] 今回は、前回作成したindex.phpからkernel、webの順に処理を流しweb内で リクエストをコントローラに渡す仕組みにします。 […]