2017-11-03 65 views
0

有了一個WordPress網站,我有一個我希望使用.htaccess文件重定向到根域的網址列表。這裏沒什麼特別的,只是在尋找這個信息時,我發現瞭如何重定向所有的url或者特定的文件夾,但不是一個自定義的url列表。使用htaccess將自定義網址重定向到根域使用htaccess

例如,我的一個網址是這樣的:example.com/path1/path2/,我可以在我的.htaccess文件中的RewriteEngine On行下方輕鬆添加Redirect 301 /path1/path2/ http://example.com/

這樣一來,任何其他example.com/path1/path2/moreUrlPath/here將被重定向到example.com/moreUrlPath/here並加入另一定製重定向行這樣Redirect 301 /path1/path2/moreUrlPath/here http://example.com/會有任何作用。

底線,有一個網址列表,我如何將它們永久重定向到根域?

回答

0

使用mod_rewrite和RewriteRule而不是Redirect

的重寫規則使用正則表達式匹配的URL,這樣你就可以說

RewriteRule ^path1/path2/$ http://example.com/ [R=301,L] 

匹配準確「/路徑1 /路徑/」(你總是之下/在.htaccess工作時,所以領先/不包括在內)。 ^代表「在開始時匹配開始」,而$代表「並在結束時停止」,因此在path2 /之後不會有任何東西。這可以讓你非常具體,例如你可以去

RewriteRule ^path1/path2/a$ http://example.com/ [R=301,L] 
RewriteRule ^path1/path2/aa$ http://subdomain.example.com/ [R=301,L] 

當你不必須是具體的,和你想的一切在一定的路徑重定向,您使用的是開放式的比賽:

RewriteRule ^path1/path2/ http://example.com/ [R=301,L] 

這一切重定向/ path1/path2 /到根目錄,並且它不會在意path2 /後面的內容,所以/path1/path2/test/不會像Redirect那樣重定向到http://example.com/test/。 儘管如此,您也可以使用反向引用和將某些部分與括號進行匹配,例如

RewriteRule ^path1/path2/(.*) http://example.com/$1 [R=301,L] 

然後將重定向/路徑1 /路徑/到http://example.com/,但/路徑1 /路徑/測試/到http://example.com/test/

相關問題