2

所以基本上,我试图从我网站中的所有 URL 中删除一个参数。

例如:

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]
4

1 回答 1

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]
于 2013-10-21T04:56:15.633 回答