Apache .htacces重定向

时间:2015-06-21 08:33:52

标签: apache .htaccess mod-rewrite

我尝试创建重定向规则。我有两个网址www.example.com/speak和www.example.com/speaking。我将以下行添加到我的.htaccess

RewriteRule speaking$ /?utm_source=offline&utm_medium=books&utm_campaign=bookmarks_uk [NC,QSA,R=301]
RewriteRule speak$ /?utm_source=offline&utm_medium=bookmarks&utm_campaign=english_course [NC,QSA,R=301,L]

但每次我都被重定向到/?utm_source = offline& utm_medium = books& utm_campaign = bookmarks_uk。

我换了他们但是没有用。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这些规则应该可以正常工作,但可以改进以适应尾随斜杠。还可以使用^标记字符串的开头,使用$标记字符串的结尾。

RewriteRule ^speaking/?$ /?utm_source=offline&utm_medium=books&utm_campaign=bookmarks_uk [NC,QSA,R=301]
RewriteRule ^speak/?$ /?utm_source=offline&utm_medium=bookmarks&utm_campaign=english_course [NC,QSA,R=301,L]

我怀疑你的问题是浏览器缓存。尝试清除浏览器缓存并重新启动浏览器。

答案 1 :(得分:0)

您正在重定向,因为您使用的是R=301标记。如果您尝试访问/speaking并显示/?utm_source=offline&utm_medium=books&utm_campaign=bookmarks_uk的内容,则需要删除相关标记。

您生成的规则应如下所示:

RewriteRule ^speaking/?$ /?utm_source=offline&utm_medium=books&utm_campaign=bookmarks_uk [NC,QSA,L]
RewriteRule ^speak/?$ /?utm_source=offline&utm_medium=bookmarks&utm_campaign=english_course [NC,QSA,L]