2017-02-12 142 views
2

我試圖在.htaccess到301以下代碼重定向www.example.com/?content=file.php&id=16www.example.com/file/This-is-the-title/16.htaccess; 301重定向不工作

RewriteEngine on 
Redirect 301 /?content=file.php&id=16 /file/This-is-the-title/16 

但它不重定向。該URL保持原樣。

我在做什麼錯?

P.S.我不是要求重寫或者等等。我需要301重定向。

+0

我的答案是否適合你?也許你可以接受它?謝謝。 – SuperDuperApps

+0

我刪除了您的編輯David,除了從您的問題中刪除了替換網址上的拼寫錯誤(並且仍然存在 - 我將更新您的問題)。爲了通過它們,可以在RewriteRule中測試REQUEST_URI,^ $和.htaccess中的'/'匹配。 query_string可以與我正在做的方式匹配,它不一定是一個正則表達式。基本URL「http:// www.example.com」在不更改時不必更換。 – SuperDuperApps

+0

我也根據需要放回'RewriteEngine',這對後面提到的任何人都很有用,即使你碰巧已經有了適用於其他規則的地方,所以不需要它來對付這個。這是爲了讓答案完整。 – SuperDuperApps

回答

3

Redirect指令與查詢字符串不匹配。用這個代替:

RewriteEngine on 
RewriteCond %{QUERY_STRING} =content=file.php&id=16 
RewriteRule ^$ /file/This-is-the-title/16? [R=301,L] 
+1

您只需在'RewriteRule' _substitution_(或Apache 2.4+上的'QSD'標誌)末尾添加一個'?',就可以從重定向的URL中刪除查詢字符串。 – MrWhite

+0

謝謝,我總是忘記這些!也許我現在會記得:) – SuperDuperApps