我买了一个显然使用某种CMS的旧网站,也许是wordpress。 现在它是一个简单的HTML网站。我想将www.example.com/main和该目录中的所有内容重定向到root。换句话说,如果网址是example.com/main/a_bunch_of_garbage,则应该301重定向到主页。这是我所拥有的,但它并不是很有效。
Options +FollowSymLinks
RewriteEngine on
RedirectMatch 301 ^/main/(.*)$ http://www.example.com
如果网址不包含任何奇怪的字符,例如?或=然后它的工作原理。但是,例如,如果我访问www.example.com/main/index.php?option=com_content&view=post&id=84&Itemid=982/ 然后,虽然它确实重定向到主页,但在地址栏中,我仍然可以看到整个网址。我能解决这个问题吗? 我还记得我遇到的另一个问题。如果我把example.com/main(在main之后没有正斜杠)重定向不起作用。它只适用于我将example.com/main/(带正斜杠)
答案 0 :(得分:0)
您只需使用mod_rewrite
规则,并避免在此处混合使用RedirectMatch
。在你的root .htaccess:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^main(/.*)$ $1? [L,NC,R=301]
最后 ?
用于去除任何现有的查询字符串。