基本上,我正在尝试从我网站中的所有网址中删除参数。
例如:
http://www.mydomain.com.au/thispage.html?view=form
http://www.mydomain.com.au?view=form
http://www.mydomain.com.au/this-is-a-page.html?view=form
我要求上面的所有页面都使用没有此参数的版本,例如:
http://www.mydomain.com.au/thispage.html
http://www.mydomain.com.au
http://www.mydomain.com.au/this-is-a-page.html
重定向必须仅在view=form
时发生,而不是在view
等于其他任何内容时发生。
正则表达式和apache非常新,所以我不确定这是否可能。
到目前为止,我刚刚使用以下代码将它们指向404,尽管这会在网站管理员工具中引起一些问题:
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com\.au [NC]
RewriteCond %{QUERY_STRING} (^|&)view=
RewriteRule ^ - [L,R=404]
答案 0 :(得分:2)
使用以下htaccess代码
RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} (^|&)view=form(&|$) [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI}? [R=301,L]
如果您想保留其他查询参数(例如?foo1=bar1&view=form&foo2=bar2
),请使用
RewriteCond %{QUERY_STRING} ^(?:(.*)&)?view=form(?:(&.*))?$ [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI}?$1$2 [R=301,L]