ワイルドカードを使用して、すべてのページに対してリダイレクトを実行しようとしています。私は、次のことを試してみました「:.htaccess:動作していないページ以外のすべてのページをリダイレクトします。
RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$
RewriteCond %{REQUEST_URI} !^/menu
RewriteRule ^(.*)$ "http\:\/\/www\.new\.com\/$1" [R=301,L]
私は何を期待してることは
old.com -> new.com
old.com/abc - > new.com/abc
old.com/menu -> old.com/menu
すべてのリダイレクトを除いて、正常に動作している次のとおりです。
old.com/menu -> old.com/http://www.new.com
と私は理由を把握することはできません。
EDIT:.htaccessの
RewriteOptions inherit
# Use PHP5.4 as default
AddHandler application/x-httpd-php54 .php
# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks
Options +SymLinksIfOwnerMatch
RewriteCond %{HTTP_HOST} ^(www.)?old.com$
RewriteCond %{REQUEST_URI} !^/web/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /web/$1
RewriteCond %{HTTP_HOST} ^(www.)?old.com$
RewriteRule ^(/)?$ web/ [L]
を持っていますか? – MrWhite
残りの内容を追加しました。 – KobeBryant
'RewriteOptions inherit' - これは何ですか?これは、親configファイルにmod_rewriteディレクティブが必要であることを意味します。したがって、これも競合の原因となる可能性があります。新しいディレクティブをインプレースで使用して、.htaccessファイル全体を投稿する方がよいかもしれません。 (ディレクティブの順序は重要です) 'RewriteEngine'ディレクティブはありませんので、あなたが投稿したものは完全には完了していません。 – MrWhite