我看了四周,但一切似乎与我想要的相反。我想要做的只是重定向目录URL之后的所有目录。所以我有这个工作
RedirectMatch 301 /blog/ http://www.mynewblog.com/
但是我需要它来排除(不重定向)在目录或文件和子目录之后附加的查询字符串。所以我想访问这些网址
http://www.myoldblog.com/blog/?wpdmact=process
http://www.myoldblog.com/blog/page/2
http://www.myoldblog.com/blog/page.php
但/blog/
之后的所有内容仍然会被重定向。那么有没有办法在htaccess文件中排除这个。谢谢,对不起,如果有人已经发布了答案,我找不到。
答案 0 :(得分:1)
尝试:
RewriteEngine On
RewriteCond %{QUERY_STRING} !^wpdmact=process
RewriteCond $1 !^page/2
RewriteCond $1 !^page.php
RewriteRule ^blog/(.*)$ http://www.mynewblog.com/ [L,R=301]
如果要匹配查询字符串,则需要使用mod_rewrite而不是mod_alias,但是如果查询字符串为/blog/
或者如果是wpdmact=process
,这将重定向以page/2
*除8开头的所有内容以下路径为page.php
或{{1}}。
答案 1 :(得分:0)
尝试以下方法:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^blog/?$ http://www.mynewblog.com/ [R,L]
请注意,要使上述规则有效,您需要启用mod_rewrite
。虽然RedirectMatch
模块提供了mod_alias
指令,但重写是通过单独的模块完成的。