【问题标题】:Rewrite all files from folder to another folder将文件夹中的所有文件重写到另一个文件夹
【发布时间】:2012-11-27 09:28:43
【问题描述】:

我想将所有请求的文件从文件夹 a 重定向到文件夹 b。例如。 http://www.yoursite.com/folder-a/index.phphttp://www.yoursite.com/folder-b/index.php

我该怎么做?我已经验证了 mod_rewrite 是否可以使用此代码:

RewriteEngine On
RewriteRule ^google.html$ http://www.google.com/ [R=301]

网络空间的结构如下:

.htacces
|-文件夹-a
|-文件夹-b

但是如果我想要我的文件夹重定向

RewriteEngine On
RewriteRule ^/folder-a/(.*)$ http://www.yoursite.com/folder-b/$1 [L,R=301]

如果我输入以下 URL,重定向将不起作用:

http://www.yoursite.com/folder-a/
http://www.yoursite.com/folder-a/index.php

重定向不会发生。我保持在同一页面上......我做错了什么?我也用这个 htaccess 试过:

Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^folder-a(.*)$ http://www.yoursite.com/folder-b$1 [L,R=301]

</IfModule>

如果这一切正常,我想排除一些文件。例如。使用这个 htaccess:

RedirectPermanent /folder-a/info.php /folder-b/new-info.php

编辑

现在我尝试了这个 htaccess

redirectMatch 301 ^/folder-a/ http://www.yoursite.com/folder-b

这可行,但我需要一些东西来获取整个路径并将其重写到新文件夹。

这个例子不起作用:

RewriteRule ^folder-a/(.*)$ folder-b/$1

解决方案

我的folder-a 中有一个旧的 htacess 文件,因此重定向不起作用。这是我最后的 htaccess:

Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^folder-a/excludefile1.php http://www.yoursite.com/folder-b/newnameforfile1.php [L,R=301]
RewriteRule ^folder-a/excludefile2.php http://www.yoursite.com/folder-b/newnameforfile2.php [L,R=301]
RewriteRule ^folder-a/(.*)$ http://www.yoursite.com/folder-b/$1 [L,R=301]

</IfModule>

【问题讨论】:

    标签: .htaccess redirect directory


    【解决方案1】:

    您可能需要设置两个规则:一个用于空文件夹,另一个用于其他文件,然后是底部的全部规则。这未经测试:

    RewriteEngine On
    
    RewriteRule ^folder-a/info.php http://www.yoursite.com/folder-b/new-info.php [L,R=301]
    RewriteRule ^folder-a/ http://www.yoursite.com/folder-b/ [L,R=301]
    RewriteRule ^folder-a/(.*)$ http://www.yoursite.com/folder-b/$1 [L,R=301]
    

    【讨论】:

    • 感谢您的帮助。我试过了,但没有用。我不知道为什么。我设置了两个测试文件夹并将文件放入其中。在我的 htaccess 中,我有以下 RewriteRule ^test/(.*)$ http://www.yoursite.com/test2/$1 [L,R=301]。此重定向有效。如果我将其调整为我的真实文件夹,它将停止工作......
    • 我发现了错误。我的文件夹-a 中有一个旧的 .htaccess。这停止了​​重定向工作。我以为我已经删除了它...顺便说一句:我删除了这条规则RewriteRule ^folder-a/ http://www.yoursite.com/folder-b/ [L,R=301],因为我被重定向到了文件夹-b/index.php。
    猜你喜欢
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 2016-10-25
    • 2010-11-07
    相关资源
    最近更新 更多