WordPressのRewriteについて
-
Rewriteが上手くできずにいるのですが、どの記述がいけないのかをご教示願います。
WordPressを仮に
example.com/xxx
へとインストールしている状態とします。
自動生成されている.htaccessは
- - - - - - - - - - - -
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /xxx/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /xxx/index.php [L]
</IfModule># END WordPress
- - - - - - - - - - - -
なのですが、このルールに以下のルールを追加したいと考えています。
- - - - - - - - - - - -
RewriteEngine on
RewriteBase /xxx/
RewriteCond %{REMOTE_ADDR} ^123\.456\.78\.901
RewriteRule ^.*$ http://www.yahoo.co.jp/- - - - - - - - - - - -
つまり、特定のIPアドレスだけを特定のURLへリダイレクトさせたいと考えています。
WordPress謹製の記述に追記するとエラーが出そうですし、設定変更時に上書きリセットされそうなので触れないようにしています。
まず、WordPressが吐き出した部分を上に、当方の記述は下にして.htaccess内に次のように並記しました。
- - - - - - - - - - - -
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /xxx/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /xxx/index.php [L]
</IfModule># END WordPress
RewriteEngine on
RewriteBase /xxx/
RewriteCond %{REMOTE_ADDR} ^123\.456\.78\.901
RewriteRule ^.*$ http://www.yahoo.co.jp/- - - - - - - - - - - -
テストを兼ねて上記のリモートホストには自分のリモートホストを入れました。
そして、固定ページである
example.com/xxx/ttt/
へアクセスすると、リダイレクトされずに固定ページが表示されてしまいます。
ただ、cssファイルがリダイレクトされている感じで、デザインが崩れた状態で表示されます。この記述のまま
example.com/xxx/
へとアクセスすると、ちゃんとリダイレクトされます。
さらに、存在しない
example.com/xxx/tt
へアクセスすると、固定ページの
example.com/xxx/ttt/
へとリダイレクトされ、やはりデザインが崩れた状態で表示されます。
次に、ワードプレスが吐き出した部分を下に、当方のルールを上にすると、
example.com/xxx/ttt/
example.com/xxx/のどちらへアクセスしても
- - - - - - - - - - - -
Found
The document has moved here.
Additionally, a 302 Found error was encountered while trying to use an ErrorDocument to handle the request.
- - - - - - - - - - - -
とエラーになります。
WordPressが吐き出した記述に触れることなく干渉させないで書く方法がわかりませんでした。
どなたかご存知の方がいらっしゃいましたら、何とぞよろしくお願いいたします。
- トピック「WordPressのRewriteについて」には新たに返信することはできません。