2017-03-08 110 views
1

試圖讓從這個URL重定向:重定向工作只有第一次

http://www.mywebsite.it/it/component/fss/?view=admin_support 

這個網址:

http://www.mywebsite.it/it/index.php/component/fss/?view=admin_support 

我做了這個代碼.htaccess文件:

RedirectMatch 301 ^/it/component/fss/?$ /it/index.php/component/fss/ 

所有的工作,如果我點擊第一次的網址。網址開始/it/index.php/component但如果我點擊進入該網頁上的另一個鏈接(如http://www.mywebsite.it/it/component/fss/?view=list),我將重定向到網站主頁。

但是,如果我複製地址(http://www.mywebsite.it/it/component/fss/?view=admin_support),我粘貼到另一個選項卡,重定向工作。

我該如何解決這個問題?

感謝

回答

0

使用mod_rewrite規則,而不是RedirectMatch匹配的查詢字符串:

RewriteEngine On 

RewriteCond %{REQUEST_METHOD} !POST 
RewriteCond %{THE_REQUEST} \s/+it/(component/fss/?)\?view=[^&\s]+[&\s] [NC] 
RewriteRule^/it/index.php/%1 [L,R=301] 

確保測試這種變化之前,清除瀏覽器緩存。

+0

我試過你的代碼,但結果與RedirectMatch相同 –

+0

在我的.htaccess中只有你的規則。我試着用私人窗口chrome和清除所有的cookie,如果我去的網址可以有'?view = admin_support'重定向工作到index.php,但如果我進入另一個ulr,可以有例如'? view = test'重定向不起作用。我嘗試從你的規則中刪除視圖,但都停止工作。如何讓alla頁面將'it/component/fss /'重定向到'/ it/index.php/component/fss'?我的.htaccess是第一個forlder(httpdocs)。謝謝@anubhava –

+0

是的。只有'/ it/index.php/component/fss'包含'/ it/component/fss /'的頁面。 –

0

嘗試與私人窗口:

enter image description here

如果一切正常,你只需要清除瀏覽器緩存。

+0

已經嘗試,但它不工作。 –