2017-02-12 76 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