我想创建一个条件,如果页面在URL中有参数,例如?print = 1 - 将此页面重定向到自己而没有任何查询字符串。
示例:
我想要这个页面:
http://sos-med.com/en/specific_page.html?print=1&ok=1
tp重定向(301)到没有查询字符串的同一个网址:
http://sos-med.com/en/specific_page.html
我的代码是:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^*print=*$ [NC]
RewriteRule ^(.*)$ %{REQUEST_URI}?
我没有测试服务器,所以你能告诉我我的代码是否正常?
上面的代码适用于网站上的每个页面。在实施该规则之前,我想尝试重定向一个特定的页面(参见我的例子) 如何修改代码才能使用“specific_page.html”?
我只想要.htaccess解决方案,而不是PHP代码。
答案 0 :(得分:1)
您已关闭,%{QUERY_STRING}
正则表达式不正确,并且您错过了301重定向标记:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^print=.*$ [NC]
RewriteRule ^(.*)$ %{REQUEST_URI}? [L,R=301]
试试。
谢谢,如果我想将单个特定页面重定向:sos-med.com/en/aaa.html?print=1&ok=1到sos-med.com/en/aaa.html? -
然后您将更改规则匹配的内容:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^print=.*$ [NC]
RewriteRule ^en/aaa.html$ %{REQUEST_URI}? [L,R=301]
答案 1 :(得分:0)
试试这个:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*&)?print= [NC]
RewriteRule ^(.*)$ /$1? [L,R=301]