2024年10月25日

.htaccess

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>
Wish I could be Comic Sans ついにマイコンピューターでインターネットを始めたの
わたしはヨガマットデザイナー

fzfeed