2017-09-11 17 views
0

www.mywebsite/asd/のすべてをリダイレクトしようとしていますが、3つのURLとすべてのサブコンテンツ(www.mywebsite/asd/A/www.mywebsite/asd/B/www.mywebsite/asd/A/)を除きます。サブページ以外のURLのリダイレクト

私は、次のパターンを試してみましたが、障害があると思わ:

RedirectMatch 301 ^/asd/((?!A/|B/|C/).)* /asd/new-target/index.html

私は正規表現エディタでそれをテストする場合、正規表現は、私が欲しいものを行います。しかし、htaccessでは動作しません。私は何を変えなければならないのですか?

答えて

0

あなたはこのルールを使用することができます

RedirectMatch 301 ^/asd/(?!A/|B/|C/|new-target/)(.*)$ /asd/new-target/index.html 

を、ブラウザのキャッシュをクリアした後、それをテストします。これがサイトルート.htaccessの最初のルールであり、/asd/ディレクトリに.htaccessがないことを確認してください。


代わりにあなたのサイトのルートの.htaccessにこのmod_rewriteルールを使用することができます。

RewriteEngine On 

RewriteCond %{REQUEST_URI} !^/ads/(?:A|B|C|new-target)/ [NC] 
RewriteRule ^/?asd(?:/.*)?$ /asd/new-target/index.html [L,NC,R=301] 
+0

を私はあなたのコードを試してみましたが、私はそれをこのように使用する場合、私は私が考える内部サーバーエラー500 –

+0

を取得私のサーバーは先読みを許可していません。先読みを使用しないで代替手段がありますか? –

+0

あなたのApacheのバージョンは何ですか? – anubhava

関連する問題