Web制作で役立つメモをWEB MEMO LOG

2018.07.28

【Web】リダイレクト設定等でよく使う「.htaccess」の書き方サンプルコードのまとめ

ドメインが変更になった場合や、wwwありなしのURL統一やhttpからhttpsへのリダイレクト、Basic認証、.htmlのままでPHPが動くように設定する等、様々な設定ができる「.htaccess」ですが、よく使うサンプルをメモメモ。

※「.htaccess」を変更するとサイトが見れなくなる場合もございますので、くれぐれも自己責任でお願いいたします。

wwwありなしのURL統一

・wwwありに統一

RewriteEngine On
RewriteCond %{HTTP_HOST} ^●●●.com
RewriteRule ^(.*)$ https://www.●●●.com/$1 [R=301,L]

・wwwなしに統一

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.●●●.com
RewriteRule ^(.*)$ https://●●●.com/$1 [R=301,L]

index.htmlなしに統一する場合

・全ページ統一

RewriteEngine On
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://●●●.com/$1 [R=301,L]
・TOPページのみ統一
RewriteEngine On
RewriteRule ^index.html$ https://●●●.com/ [R=301,L]

ドメインが変更になった場合

・旧ドメインに設置

RewriteEngine On
RewriteRule ^(.*)$ https://●●●.com/$1 [R=301,L]

http⇒httpsに統一

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

・WordPressの例

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
 
# BEGIN WordPress
<IfModule mod_rewrite.c>
~略~
</IfModule>
# END WordPress

拡張子「.html」にてPHPを実行する

※お使いのレンタルサーバやPHPのバージョンによって異なりますので、各レンタルサーバーのヘルプページ等をご参照ください。

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

・ロリポップの場合
※お使いのPHPバージョンを調べたうえで該当するバージョンのコードを記述してください。

AddHandler php5.2-script .htm .html #←PHPのバージョンが5.2の場合
AddHandler php5.3-script .htm .html #←PHPのバージョンが5.3の場合
AddHandler php5.4-script .htm .html #←PHPのバージョンが5.4の場合

・ヘテムルの場合
※お使いのPHPバージョンを調べたうえで該当するバージョンのコードを記述してください。

AddHandler php4-script .html #←PHPのバージョンが4の場合
AddHandler php5-script .html #←PHPのバージョンが5.2の場合
AddHandler php5.3-script .html #←PHPのバージョンが5.3の場合
AddHandler php5.4-script .html #←PHPのバージョンが5.4の場合

・さくらインターネットの場合

Action myphp-script /php.cgi
AddHandler myphp-script .php .html

※上記「.htaccess」の他に、下記php.cgiというファイルを作成し「.htaccess」と同階層にアップロード

#!/bin/sh
exec /usr/local/bin/php-cgi

Basic認証をする

・「.htaccess」ファイル
フルパスを調べる方法はこちら

AuthUserfile /フルパス/.htpasswd
AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

・「.htpasswd」ファイル
「.htaccess」による認証用パスワード暗号化ツールはこちらをご参考ください。

ユーザー名:エンコードされたパスワード

About Site

同じことを何度も検索していたりするんで、検索して解決したことを残そうと思いまして。