这应该很简单,我查看了许多现有问题,但仍然无法解决我的问题。我想我只是无法理解 RewriteRule 和 RedirectMatch 的工作原理。
我收到很多类似这样的服务器请求:http://www.yogacentersc.es/paginas/38-titulados-por-aipys?iframe=true&width=80%&height=80%
理想情况下,我想将所有这些不同的页面永久重定向到相同的页面,减去 ?iframe 和以下位。
最好的方法是什么,或者有哪些不同的方法可以做到这一点?
答案1
将以下内容添加到您想要的虚拟主机部分:
RewriteEngine on
RewriteCond %{QUERY_STRING} iframe=
RewriteRule (.*) /$1? [R=301,L]
- 第一行启用重写引擎
- 第二行检查查询字符串是否包含
iframe=
- 第三行
$1
是请求的反向引用。问号删除查询字符串。R=301
强制重定向到 301 状态,L
表示最后一条规则。
答案2
RewriteCond %{QUERY_STRING} iframe=
RewriteRule (.*) http://www.website.com/article-name-numbers/$1? [R=301]
试试看。您需要将其放在 .htaccess 文件中的每个文章文件夹中,因为每个文章文件夹都有不同的 URL。