htaccess RewriteRule 字符串和主页参数

htaccess RewriteRule string with parameters to homepage

我需要重写url

mydomain.com/?view=article&id=288:article_name&catid=116

mydomain.com/

怎么做?

我试过了

1.

RewriteRule ^?view=article&id=288:article_name&catid=116$ / [R=301,L]

没有成功。

2.

RewriteCond %{QUERY_STRING} ?view=article&id=288:article_name&catid=116
RewriteRule .*$ /? [L,R=301]

当我测试时,我得到“我们未能执行您的正则表达式,它有效吗?”在 RewriteCond 上。

RewriteCond %{QUERY_STRING} ?view=article&id=288:article_name&catid=116
RewriteRule .*$ /? [L,R=301]

QUERY_STRING 服务器变量本身不包含 ? 前缀。但是,? 是正则表达式中的特殊元字符(RewriteCond 指令的第二个参数),因此这是无效的。

RewriteRule模式.*$也匹配一切,但你的例子只是根。

请尝试以下操作:

RewriteCond %{QUERY_STRING} ^view=article&id=288:article_name&catid=116$
RewriteRule ^$ /? [L,R=301]

首先使用 302(临时)重定向进行测试以避免潜在的缓存问题,并确保您在测试之前已清除浏览器缓存(默认情况下浏览器会永久缓存 301)。