同じWPインストールから提供されている2つのドメインがあります。 編集:しないマルチサイト
wp-config.php
にはdefine('WP_SITEURL', "http://$hostname/wordpress");
などがあります。
2つのドメインのコンテンツは似ていますが、同じパスに配置したいと考えています。 domain1.com/about-us
とdomain2.com/about-us
。
そのため、これら2つのページ\dom1\about-us
と\dom2\about-us
を設定しました。そして、私の.htaccess
には、
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_Host} dom1 [NC]
RewriteRule ^((about\-us|etc).*) /dom1/$1 [NC,QSA,L]
RewriteCond %{HTTP_Host} dom2 [NC]
RewriteRule ^((about\-us|etc).*) /dom2/$1 [NC,QSA,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
上記のURLで(編集:WordPress)404エラーページが表示されます。私の404テンプレートにprint_r($_SERVER);
を追加すると、次のようになります(単純化された出力)。
Array
(
[REQUEST_URI] => /about-us/
[REDIRECT_REDIRECT_STATUS] => 200
[REDIRECT_STATUS] => 200
[HTTP_Host] => dom1.dev
[SERVER_NAME] => dom1.dev
[REDIRECT_URL] => /dom1/about-us/
[QUERY_STRING] =>
[SCRIPT_NAME] => /index.php
[PHP_SELF] => /index.php
...
)
それは書き換えがうまくいったことを意味しませんが、WPはそれを使っていませんか?
事前に感謝します。
RewriteCond %{HTTP_Host} dom1 [NC]
RewriteRule ^((about\-us|etc).*) /dom1/$1 [NC,QSA,L]
書き換えルールにL
パラメータが含まれているため、書き換えの処理が停止します。そのため、index.phpにリダイレクトするWordPressの規則が有効になることはないでしょう。つまり、WordPressはここでも実行されていません。 404は、/ dom1/about-usにあるファイルが存在しないと言っているWebサーバーからのものです。