我只是简单地尝试将多个页面重定向到根域,并且不确定其失败的原因,没有任何反应。
RewriteEngine On
RewriteCond %{QUERY_STRING} /category/uncategorized/
RewriteCond %{QUERY_STRING} /2014/12/
RewriteCond %{QUERY_STRING} attachment_id=19
RewriteCond %{QUERY_STRING} attachment_id=18
RewriteCond %{QUERY_STRING} attachment_id=5
RewriteCond %{QUERY_STRING} attachment_id=20
RewriteCond %{QUERY_STRING} attachment_id=72
RewriteCond %{QUERY_STRING} attachment_id=6
RewriteCond %{QUERY_STRING} attachment_id=10
RewriteCond %{QUERY_STRING} attachment_id=15
RewriteCond %{QUERY_STRING} attachment_id=14
RewriteCond %{QUERY_STRING} attachment_id=16
RewriteCond %{QUERY_STRING} attachment_id=17
RewriteCond %{QUERY_STRING} attachment_id=99
RewriteCond %{QUERY_STRING} attachment_id=44
RewriteRule http://domain.com? [L,R=301]
WP重写是在同一个.htaccess中,但是如果我删除它们就没有变化。
答案 0 :(得分:1)
下面的内容应该有效。确保它位于.htaccess
DocumentRoot
RewriteEngine On
RewriteRule category/uncategorized/? http://domain.com? [L,R=301]
RewriteRule 2014/12/? http://domain.com? [L,R=301]
RewriteCond %{QUERY_STRING} attachment_id=([56]|1[4-9]|20|44|72|99)
RewriteRule ^ http://domain.com? [L,R=301]
答案 1 :(得分:0)
编辑: @ arco444的答案对您有用(确实是一个更好的答案),但您必须尝试准确理解什么是如果您想使用它,就会发生。
选项1
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/category/uncategorized/ [OR]
RewriteCond %{REQUEST_URI} ^/2014/12/ [OR]
RewriteCond %{QUERY_STRING} attachment_id=19 [OR]
RewriteCond %{QUERY_STRING} attachment_id=18 [OR]
RewriteCond %{QUERY_STRING} attachment_id=5 [OR]
RewriteCond %{QUERY_STRING} attachment_id=20 [OR]
RewriteCond %{QUERY_STRING} attachment_id=72 [OR]
RewriteCond %{QUERY_STRING} attachment_id=6 [OR]
RewriteCond %{QUERY_STRING} attachment_id=10 [OR]
RewriteCond %{QUERY_STRING} attachment_id=15 [OR]
RewriteCond %{QUERY_STRING} attachment_id=14 [OR]
RewriteCond %{QUERY_STRING} attachment_id=16 [OR]
RewriteCond %{QUERY_STRING} attachment_id=17 [OR]
RewriteCond %{QUERY_STRING} attachment_id=99 [OR]
RewriteCond %{QUERY_STRING} attachment_id=44
RewriteRule ^ http://domain.com? [L,R=301]
这里的主要内容是[OR]
标志。在原始代码中,您基本上是说必须满足所有条件。请记住,最后一个条件不应该是[OR]
。
其次,您使用QUERY_STRING
检查category/...
,但这与查询字符串无关,后者显示在?
之后。所以,我已将其更改为%{REQUEST_URI}
。
此外,您的RewriteRule
没有要匹配的URI。我在域名前添加了^
,表示它应该匹配所有内容(即,条件已满足)。
选项2
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/category/uncategorized/ [OR]
RewriteCond %{REQUEST_URI} ^/2014/12/ [OR]
RewriteCond %{QUERY_STRING} attachment_id=(5|6|10|14|15|16|17|18|19|20|44|72|99)
RewriteRule ^ http://domain.com? [L,R=301]
在这里,我简化了查询字符串检查。我们现在使用一个条件来检查不同的附件ID。
您可以进一步简化这一点,但我的回答的目的是让您知道哪里出错了,哪些事情可以简化一点。