私が Apache を使用してからかなりの時間が経ちましたが (非常に長い間)、それでも URL の書き換えなどはほとんど行わず、単純なホスティングだけでした。しかし今、私は、新しいドメインにブランド変更された中小企業向けの単純なリダイレクトをまとめようとしています。
セットアップ方法は、古いドメインのホストに、特定の URL への Web コントロール パネル ベースのリダイレクトがあることです。新しいドメインのページ。すべてのリクエストはリダイレクトされますが、リクエスト パス全体が含まれるため、新しいサイトで 404 が発生します。
私はいくつかの Apache ドキュメントと、オンラインで見つけられるいくつかの例を調べてきましたが、まだ十分ではありません。これまでに中断したのは、次のようなものです。
RewriteCond %{REQUEST_URI} .*looking-for-blah.* [NC]
RewriteRule ^ http://newsite.com/looking-for-blah [L,R=301]
アイデアは、 を含むパスに対して着信するリクエストは、そのlooking-for-blah
前後に関係なく、明示的な に移動する必要があるということhttp://newsite.com/looking-for-blah
です。したがって、古いホストが誰かを次のようにリダイレクトすると:
http://newsite.com/looking-for-blah/foo/baz
新しいサイトから次の場所にリダイレクトされます。
http://newsite.com/looking-for-blah
ただし、着信リクエストをキャッチしてリダイレクトしているようには見えません。の基本的な概念が欠けていRewriteCond
ますか? たぶん、私が考えもしなかった、これを行うためのより良い方法がありますか?
編集: .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
# 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
# BEGIN custom redirect
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule looking-for-icamp http://empow.me/looking-for-icamp [L,R=301]
</IfModule>
# END icamp redirect
しかし、単純なwget
onを実行するhttp://empow.me/looking-for-icamp/foo
と、目的の 301 ではなく 404 が返されます。