0

サブディレクトリでWordpress(およびbudypressプラグイン)を実行しています:

mydomain.com/mysubdomain/

私のmodrewritesは次のとおりです:

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

すべてが期待どおりに機能します。たとえば、mydomain.com/mysubdomain/?page=2 の About Us ページには、mydomain.com/mysubdomain/about-us という「きれいな」URL があります。

mydomain.com のルート ディレクトリに、 WordPress 以外のWeb サイトもあり、次の書き換えルールがあります。

RewriteCond %{HTTP_HOST} ^([a-z0-9-]+).mydomain.com [NC]
RewriteRule ^newpage\.html$ http://mydomain.com/mysubdomain/about-us [NC,L]

これにより、http://mydomain.com/newpage.html が http://mydomain.com/mysubdomain/about-us のページに書き換えられますが、Wordpress の 404 ページが見つからないというエラーが表示されます。(ブラウザの URL は正しいです: http://mydomain.com/newpage.html )

Wordpress 404 ページが表示されるため、これは、Wordpress の modrewrites が newpage.html リダイレクトと競合していることに問題があることを示唆しています。

ヘルプ/提案は大歓迎です!

ありがとう!

4

1 に答える 1

0

あなたのルールは、あなたが説明していることをしていないようです:

RewriteCond %{HTTP_HOST} ^([a-z0-9-]+).mydomain.com [NC]
RewriteRule ^newpage\.html$ http://mydomain.com/mysubdomain/about-us [NC,L]

これにより、ブラウザがhttp://mydomain.com/mysubdomain/about-usにリダイレクトされますが、これは実際に起こっているように見えるものとは一致しません。問題は、単に URI を書き換えただけでは、wordpress コントローラーがリクエストを正しく処理しない可能性があることです (これについては不明です。推測にすぎません)。そのため、書き換えられていない URI に書き換える必要がある場合があります。

RewriteRule ^newpage\.html$ /mysubdomain/?page=2 [NC,L]
于 2012-07-18T20:35:12.967 に答える