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)。
我需要重写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)。