mod-rewrite redirect url with query string to static url

时间:2011-11-28 02:11:42

标签: mod-rewrite

这导致了很多头发拉扯。我正在尝试将带有查询字符串的URL重定向到看起来很静态的URL - 如果输入带有查询字符串的URL,我希望URL实际更改。

因此,如果用户导航到:

http://mysite.com/index.cfm?event=page.product&productid=170&languageid=en

然后mod_rewrite将重定向到:

http://mysite.com/en/products/170

我在我的htaccess文件中试过这个(和htaccess一样):

RewriteCond %{QUERY_STRING} ^event=page\.product&productid=(.*)&languageid=(.*)$ [NC]

RewriteRule ^index\.cfm$ /%2/products/%1/ [R=301,L]

但是,这似乎不起作用。我已经遍布stackoverflow,但无法找到我正在寻找的东西。

非常感谢任何帮助。

谢谢, 汤姆

1 个答案:

答案 0 :(得分:0)

非常奇怪,您的代码无效。所以这是我的建议,可能会让你走上正轨:


(1)

请尝试使用RewriteLog指令:它可以帮助您找出此类问题:

# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On

(2)

我最喜欢检查regexp的工具:

http://www.quanetic.com/Regex(别忘了选择ereg(POSIX)而不是preg(PCRE)!)