.htaccess:htmlファイルでphpを使用する

拡張子が「.html」のファイルでphpを使用したい場合があります。

htmlファイルで作成していたページで拡張子を「.php」に変更すればphpを使用することができますが、URLを変更したくないなどの場合があります。

.htaccessで下記の設定すれば、拡張子が「.html」のファイルでphpを使用することができます。


htmlファイルでphpを使用

下記のコードを「.htaccess」に記述すればhtmlファイルでもphpを動かせることができます。

AddType application/x-httpd-php .php .html

使用しているサーバによっては、記述の仕方が異なることがあるので
注意しなければいけません。


.htaccess:.htaccessでhttpsへリダイレクトする

httpでアクセスされた際にhttpsのページへリダイレクトさせたい場合があります。
.htaccessを使用するとhttpsリダイレクトさせることが可能です。

その時の方法をメモします。


.htaccessでhttpsへリダイレクト

.htaccessのファイルに下記の内容を記述します。

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>

SSL通信したいディレクトリに.htaccessを設置します。
設置したディレクトリ以下のページに適用されます。
サイト全体に適用させる場合は、ドキュメントルートに設置します。


■ .htaccess 記述内容

RewriteEngine on

RewriteEngineを有効にします。


RewriteCond %{HTTPS} off

httpsではない場合という条件を付けます。


RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

アクセスされたURLをhttpsのページへリダイレクトします。


.htaccess:.htaccessでアクセス制限とIPアドレスを制御する

特定のIPアドレスからのアクセスを許可したり、または拒否したい場合があります。
サイトの管理画面などを作成した場合は、特定のIPアドレスのみ許可することが多いと思います。

.htaccessを使用すればIPアドレスで制御することが可能です。
また、様々なサイトへのアクセスに制限をかけることができます。

すぐ忘れてしまうので、
.htaccessを使用したアクセス制限をかける方法や
IPアドレス制御する方法をメモします。


order

allowとdenyの優先順位を指定します。
優先するもの先に記述します。

order allow,deny

または下記のように記述します。

order deny,allow

全てのアクセスを許可・拒否

・全てのアクセスを許可する場合

下記のように「allow from all」を記述します。

order allow,deny
allow from all

・全てのアクセスを拒否する場合

下記のように「deny from all」を記述します。

order deny,allow
deny from all

特定のIPアドレスを制御(許可)

・許可するIPアドレスを指定する場合

allow from 111.222.111.222

・許可するIPアドレスを前方一致で指定する場合

allow from 111.222.

・使用例

order deny,allow
deny from all
allow from 111.222.111.222

※IPアドレスではなく、ホスト名で指定することも可能です。


特定のIPアドレスを制御(拒否)

・拒否するIPアドレスを指定する場合

deny from 111.222.111.222

・拒否するIPアドレスを前方一致で指定する場合

deny from 111.

・使用例

order allow,deny
allow from all
deny from 111.222.111.222

※IPアドレスではなく、ホスト名で指定することも可能です。


.htaccessは設置したディレクトリ内のファイルに適用されるので、
下層ディレクトリ内のファイルにも適用されます。

また、ディレクトリごとに設定することも可能なので、
ディレクトリごとに別のアクセス制限をかけることもできます。

ちなみに、コメントを書きたい場合は、下記のように
「#」を先頭に記述するとコメントアウトすることができます。

#コメントアウト
order allow,deny
allow from all
#deny from 111.

先頭に「#」が記述されているものはコメントアウトされているので
無効になります。


.htaccess:.htaccessでwwwの有無を統一する方法

WEBサイトを作成しているとサイトのドメイン部分(URL)を「www」無し、又は「www」有りで統一したい場合があります。
「www」の制御はどちらでもいいという方もいますし、どちらがいいということもありません。
しかし、どちらかに統一していないと検索エンジンから別サイトと判断されてしまうようなので、SEOを考えても「www有無統一はした方がいいと思います。

例としては「yahoo」のサイトで「http://yahoo.co.jp/」でアクセスすると、自動的に「www」有りの「http://www.yahoo.co.jp/」にリダイレクトされサイトが表示されます。

今回はwwwの有無を統一させる為に「.htaccess」を使用し、URLに表示するwww有無を制御する方法を記載します。
サイトにアクセスすると「.htaccess」で設定したURLに転送されるようになります。


wwwが有りに設定する場合
※「sample.com」の箇所を設定するドメインに書き換えます。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(sample\.com)(:80)? [NC]
RewriteRule ^(.*) http://www.sample.com/$1 [R=301,L]
</IfModule>

wwwが無しに設定する場合
※「sample.com」の箇所を設定するドメインに書き換えます。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.sample\.com)(:80)? [NC]
RewriteRule ^(.*)$ http://sample.com/$1 [R=301,L]
</IfModule>

「.htaccess」を作成し、設定したいサイトのドキュメントルートにアップロードします。
アップが完了すると「www」の有無が統一されます。