たまにしか書かないので、必要な時にはいつも書き方忘れてる。なので、よく使いそうな書き方を参考サイトから拾って覚書き。
1 2 3 4 5 6 7 8 |
# index.phpなら何もしないで完了 RewriteRule ^index\.php$ - [L] # ファイルが存在しない RewriteCond %{REQUEST_FILENAME} !-f # かつ、ディレクトリが存在しない RewriteCond %{REQUEST_FILENAME} !-d # どんなリクエストでも/hoge/index.phpへ置換して完了 RewriteRule . /hoge/index.php [L] |
1 2 3 4 |
# httpsじゃなくて RewriteCond %{HTTPS} off # foo.htmlへのアクセスならば404 RewriteRule ^foo\.html$ - [R=404,L] |
1 2 3 4 5 6 7 8 |
# aaa/bbb/index.htmlの形式の場合 # %1=aaa # %2=bbb RewriteCond %{REQUEST_FILENAME} ^(.*)/(.*)/index.html$ # $1=bbb # $2=index.html # aaaがexならば/bbb/ex/index.htmlに置換される RewriteRule ^/ex/(.*)/(.*)$ /$1/%1/$2 |
1 2 3 4 5 6 7 8 9 |
# *.amazonaws.comからのアクセス # [NC] 大小文字区別なし RewriteCond %{REMOTE_HOST} "^.*\.amazonaws\.com" [NC] # リファラが無い RewriteCond %{HTTP_REFERER} ^$ # Accept-Languageがen-us RewriteCond %{HTTP:Accept-Language} "^en-us" [NC] # [F] 403(Fobidden)を返す RewriteRule ^.*$ - [F,L] |
参考サイト
[Apache] mod_rewriteの使い方・.htaccessでリダイレクトする | Ago Hack
https://agohack.com/mod_rewrite_rule_cond_base/
mod_rewriteで特定のアクセスを拒否する+mod_rewriteの再整理 – Qiita
https://qiita.com/kite_999/items/a169484c3134b91d37e9
Apacheのmod_rewriteモジュールの使い方を徹底的に解説 | OXY NOTES
https://oxynotes.com/?p=7392
全てのWeb担に捧げるRewrite設定集 | TECHSCORE BLOG
https://www.techscore.com/blog/2014/12/16/%E5%85%A8%E3%81%A6%E3%81%AEweb%E6%8B%85%E3%81%AB%E6%8D%A7%E3%81%92%E3%82%8Bwrite%E8%A8%AD%E5%AE%9A%E9%9B%86/
Mod_Rewrite Variables Cheatsheet
https://www.askapache.com/htaccess/mod_rewrite-variables-cheatsheet/