这导致了很多头发拉扯。我正在尝试将带有查询字符串的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,但无法找到我正在寻找的东西。
非常感谢任何帮助。
谢谢, 汤姆
答案 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)!)