htaccessで特定のファイル以外リダイレクトする処理作成。PHPでSNSを作成してみる#05

今回は、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

でアクセスします。
下の画像のように問題なく表示されました。

htaccessテスト
また、画像や指定したファイルはリダイレクトされない設定もきちんと反映されていますね。

おわりに

Apacheで使われるhtaccessという設定ファイルは、アクセスを制御する重要なファイルです。SaaSで使うぐらいですが。(本来、httd.confに記述した方がよい)

設定一つでセキュリティが脅かされることは当たり前のようにあります。
趣味レベルならよいですが、損害が出る場合は必ず、セキュリティ要件を満たす必要があります。

セキュリティは日々強固になっている一方で攻撃手法も増えています。
個人で学ぶのは至難の業です。
テックキャンプならプロの講師から徹底的なサポートで、プログラミングスキルを身につけることができます。

興味のある方はぜひ、無料カウンセリングでご相談してみてください。
オンラインカウンセリングについて詳しくみる


以上です。ありがとうございます。

コメント

  1. […] 今回は、前回作成したindex.phpからkernel、webの順に処理を流しweb内で リクエストをコントローラに渡す仕組みにします。 […]

スポンサーリンク
スポンサーリンク
タイトルとURLをコピーしました