2016-07-05 137 views
1

我試圖重定向一個特定的URL及其所有的子URL到一個特定的URL。使用301重定向這工作正常,但瀏覽器URL也顯示測試內容。請參閱下面的詳細信息Magento htaccess重定向問題

例子:https://www.mywebsite.com/customer/account/login/referer/*需要對https://www.mywebsite.com/customer/account/login/register

我試了一下被重定向是:

Options +FollowSymLinks 
RewriteEngine on 
Redirect 301 /customer/account/login/referer https://mywebsite.com/customer/account/login/register 

htaccess的規則,只是這個URL工作的罰款。如果鍵入

https://mywebsite.com/customer/account/login/referer/testing 

這將朝着https://mywebsite.com/customer/account/login/register/test

被重定向請讓我知道我將如何能夠從重定向的URL(寄存器/ *後URL部分)修剪另一部分。我試圖實現的是

https://mywebsite.com/customer/account/login/referer/* [任何URL的引用者/(包括/引用者)需要被重定向到https://mywebsite.com/customer/account/login/register]。

回答

2

這是正常現象,作爲Redirect

文檔中所述然後用URL路徑開始的任何請求都將在目標URL的位置返回重定向請求的客戶端。 超出匹配網址路徑的其他路徑信息將被追加到目標網址。

要重定向所有的請求開始與這個前綴給定的URL,你可以使用RedirectMatch,它使用正則表達式,而不是一個URL前綴

RedirectMatch ^/customer/account/login/referer https://mywebsite.com/customer/account/login/register 

你並不需要的使用

Options +FollowSymLinks 
RewriteEngine on 

因爲這是用於mod_rewrite。 RedirectRedirectMatch由mod_alias模塊提供。

+0

謝謝奧拉夫。這很好。正是我想要達到的。現在所有的URL都是根據請求重定向的。也謝謝你的詳細解釋。 –