2017-04-01 90 views
0

我想将我的域的子目录中的所有文件重定向到根目录,以便从URL中隐藏子目录。例如,我想www.domain.com/blog/test1.php重定向到www.domain.com/test1.phpwww.domain.com/blog/test2.php重定向到www.domain.com/test2.php通过htaccess将子目录中的所有文件重定向到root

我怎样才能通过.htaccess文件实现这一目标?我到目前为止所尝试的所有内容都只是将子目录中的所有文件重定向到www.domain.com。 谢谢你的帮助。

我已经尝试使用:

RedirectMatch 301 ^/blog/$ example.com 
RewriteRule /blog/(.*) /$1 [PT] 
RewriteCond %{HTTP_HOST} ^www.example.com 
RewriteRule ^blog/(.*)$ example.com/$1 [L,R=301] 

这一切都只是重定向到www.example.com

+0

你能分享一下你试过的吗? – starkeen

+0

我试过例如RedirectMatch 301 ^/blog/$ http://example.com/; RewriteRule /blog/(.*)/ $ 1 [PT]; RewriteCond%{HTTP_HOST}^www.example.com RewriteRule^blog /(.*)$ http://www.example.com/$1 [L,R = 301]这些都只是重定向到www.example.com。 – zivuska

回答

0

我刚刚学习mod_rewrite我自己,但我认为你在第一个RewriteRule有一个额外的'/',第二个是不必要的主机名。我相信这是值得一试的:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteRule ^blog/(.*) $1 [L] 
</IfModule> 
+0

谢谢,但只是重定向到主页。 – zivuska

+0

那么这个规则是否有所作为?请在发布完整的.htaccess文件后,提供您输入的URL以及(确切)所需的URL。也请尝试类似http:// /blog/foo(其中foo是不存在的博客文章),并告知我们*返回了哪些内容。 – BobHy

相关问题