2017-09-11 76 views
0

我試圖在www.mywebsite/asd/之下重定向所有內容,除了三個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

我想我的服務器不允許預覽。如果不使用lookahead,有沒有其他選擇? –

+0

你的Apache版本是什麼? – anubhava

相關問題