※社内専用

マルチサイトやSSLリダイレクトに対応した.htaccess

  • HOME
  • EPRESS-BS
  • マルチサイトやSSLリダイレクトに対応した.htaccess
翻訳でのマルチサイト化やSSLリダイレクトなど 形態が増えてきたので 記述のサンプルを載せときます。 このままベタッと貼り付けて使えるはず。
18/6/21追記
GMOと旧EPRESSサーバーでSSL化後の必要記述が違うので書き直し

GMOサーバー
  1. 標準的な.htaccess
  2. マルチサイト / サブディレクトリ型
旧EPRESSサーバー(epressd.jp)
  1. 標準的な.htaccess
  2. SSLリダイレクト
  3. マルチサイト / サブディレクトリ型
  4. マルチサイト / サブディレクトリ型 / SSLリダイレクト

GMOサーバー

SSLかどうかは問わない。マルチサイトかどうかだけで書き分ける。

1. 標準的な.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

2. マルチサイト / サブディレクトリ型

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>

# END WordPress

旧EPRESSサーバー(epressd.jp)

1. 標準的な.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

2. SSLリダイレクト

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress#ORIGINALDOMAIN_SETTING_START
RewriteCond %{HTTPS} on [NC,OR]
RewriteCond %{HTTP:HTTPS} on [NC]
RewriteRule ^(.*)$ - [L]

RewriteCond %{HTTPS} !on [NC]
RewriteCond %{HTTP:HTTPS} !on [NC]
RewriteRule ^(.*)$ https://%{HTTP:ORG_HTTP_HOST}%{HTTP:ORG_REQUEST_URI} [L,R=301]

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP:ORG_HTTP_HOST}%{HTTP:ORG_REQUEST_URI} [L,R=301]
#ORIGINALDOMAIN_SETTING_END

3. マルチサイト / サブディレクトリ型

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>

# END WordPress

4. マルチサイト / サブディレクトリ型 / SSLリダイレクト

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

#ORIGINALDOMAIN_SETTING_START
RewriteCond %{HTTPS} !on [NC]
RewriteCond %{HTTP:HTTPS} !on [NC]
RewriteRule ^(.*)$ https://%{HTTP:ORG_HTTP_HOST}%{HTTP:ORG_REQUEST_URI} [L,R=301]
#ORIGINALDOMAIN_SETTING_END

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>

# END WordPress