URL Redirect
# 特定のURLを301リダイレクト
RewriteEngine On RewriteBase / RewriteRule ^news/$ https://domain.com/news.php [R=301,L] RewriteRule ^news/$ /news.php [R=301,L]
domain.com/news.php → domain.com/news/
# ドメイン変更のため301リダイレクト 一部のディレクトリは除く
RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} !(^/images/) RewriteCond %{REQUEST_URI} !(^/videos/) RewriteRule ^$ https://new.com/ [R=301,L]
old.com → new.com
old.com/images/ → old.com/images/
# httpsにリダイレクト
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# wwwありにリダイレクト
RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R,L]
#.html .php なしにリダイレクト
RewriteCond %{THE_REQUEST} ^.*\.(php|html) RewriteRule ^(.*)\.(php|html)$ https://domain.com/$1 [R=301]
URL Custom
# リダイレクトさせずに2つURLを存在させる
特定のページでスラッシュありでもなしでも同じページを表示RewriteRule ^blog/$ /blog [L]スラッシュありでも.phpでも同じページを表示
RewriteRule ^(.*)/$ /$1.php [L]
# URL末尾の.phpなしにする
#さくらのレンタルサーバーではこの設定がでデフォルトでされてる(htmlも)RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php [L]
# パラメーター値をスラッシュ区切りにする
RewriteRule ^blog/(.*)/$ /blog/page.php?p=$1
domain.com/page.php?p=101 → domain.com/blog/101/
# URL末尾にスラッシュを入れる
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} !/$ RewriteCond %{REQUEST_URI} !\.[^/\.]+$ RewriteRule .* %{REQUEST_URI}/ [R=301,L] </IfModule>
#ファイル名最初のアンダーバーをスラッシュ区切り
区切る前の文字列はあらかじめ指定しておく必要があるアンダーバー1つ用
RewriteRule ^admin/(shop|user)/([0-9a-z_-]+)\.php$ /admin/$1_$2.php [L]
domain.com/shop_test.php → domain.com/shop/test.php
アンダーバー2つ用
RewriteRule ^admin/(shop|mail|news)/([0-9a-z_-]+)/([0-9a-z_-]+)\.php$ /admin/$1_$2_$3.php [L]
domain.com/news_test_test.php → domain.com/news/test_test.php
Wordpress DIRECTORY
# wordpressがある階層からwordpressパーマリンク機能を除外する階層を指定
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 除外するディレクトリを追加 ↓
RewriteCond %{REQUEST_URI} !(^/otrodirectorio/)
# 除外するディレクトリを追加 ↑
RewriteRule . /index.php [L]
</IfModule>
アクセス権限操作
# Bacis認証
AuthType Basic AuthName "Restricted Page" Require valid-user AuthUserFile /home/.htpasswds/domain.com/.htpasswd
# Bacis認証から特定のIPアドレスを除外
<RequireAny> Require ip 00.00.0.000 Require valid-user </RequireAny>