ref. https://httpd.apache.org/docs/current/mod/mod_rewrite.html
mod_rewrite
が有効な場合にのみ処理をする。
<IfModule mod_rewrite.c>
RewriteEngine on
# 処理
</IfModule>
blog
ディレクトリを除いてSSL化。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{REQUEST_URI} !(^/blog/)
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
.htaccess上では、リダイレクト元のパターン指定は、ホスト名直後のスラッシュを含まないURLパス、逆に、リダイレクト先はホスト名直後のスラッシュを含むパスとなります。これはApache の仕様で定義されていますが、混乱しやすいため、注意が必要です。
参考:RewriteRule directive: What is matched?
301リダイレクトの記述
Redirect permanent /sample/ http://wwww.example.com/index.php
302リダイレクトの記述
Redirect 302 /sample/ http://wwww.example.com/index.php
301リダイレクトの記述
RedirectMatch permanent ^/index\.html$ https://example.com/example/
302リダイレクトの記述
RedirectMatch 302 ^/index\.html$ https://example.com/example/
Header set Access-Control-Allow-Origin "*"
<Files ~ "index.php">
order deny,allow
allow from all
</Files>
<FilesMatch "^composer|^COPYING|^\.env|^\.maintenance|^Procfile|^app\.json|^gulpfile\.js|^package\.json|^package-lock\.json|web\.config|^Dockerfile|\.(ini|lock|dist|git|sh|bak|swp|env|twig|yml|yaml|dockerignore)$">
order allow,deny
deny from all
</FilesMatch>
ref.