web-dev-qa-db-ja.com

WP .htaccessの書き換えられたURLを無視している

同じWPインストールから提供されている2つのドメインがあります。 編集:しないマルチサイト

wp-config.phpにはdefine('WP_SITEURL', "http://$hostname/wordpress");などがあります。

2つのドメインのコンテンツは似ていますが、同じパスに配置したいと考えています。 domain1.com/about-usdomain2.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はそれを使っていませんか?

事前に感謝します。

1
jezmck
RewriteCond %{HTTP_Host} dom1 [NC]
RewriteRule ^((about\-us|etc).*) /dom1/$1 [NC,QSA,L]

書き換えルールにLパラメータが含まれているため、書き換えの処理が停止します。そのため、index.phpにリダイレクトするWordPressの規則が有効になることはないでしょう。つまり、WordPressはここでも実行されていません。 404は、/ dom1/about-usにあるファイルが存在しないと言っているWebサーバーからのものです。

1
Otto