【问题标题】:Redirect all files in sub-directory to root via htaccess通过htaccess将子目录中的所有文件重定向到root
【发布时间】:2017-04-01 17:47:50
【问题描述】:

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

如何通过.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

【问题讨论】:

  • 你能分享你的尝试吗?
  • 我尝试了例如 RedirectMatch 301 ^/blog/$ example.com;重写规则 /blog/(.*) /$1 [PT]; RewriteCond %{HTTP_HOST} ^www.example.com RewriteRule ^blog/(.*)$ example.com/$1 [L,R=301] 这一切都只是重定向到 www.example.com。

标签: apache .htaccess redirect mod-rewrite


【解决方案1】:

我自己只是在学习 mod_rewrite,但我认为您在第一个 RewriteRule 中有一个额外的“/”,而在第二个中则有一个不必要的主机名。我相信这值得一试:

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

【讨论】:

  • 谢谢,但这只是重定向到主页。
  • 那么这条规则有什么不同吗?请发布带有此更改的整个 .htaccess 文件,然后提及您键入的 URL 以及(确切地说)您访问的 URL。也请尝试类似 http:///blog/foo (其中 foo 是不存在的博客文章),并让我们知道 that 返回的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-24
  • 2011-10-16
  • 2013-10-08
  • 2014-02-21
  • 1970-01-01
  • 1970-01-01
  • 2016-02-19
相关资源
最近更新 更多