繁体   English   中英

将文件夹中的所有文件重写到另一个文件夹

[英]Rewrite all files from folder to another folder

我想将所有请求的文件从文件夹 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]

网站空间的结构如下:

.htaccess
|-文件夹-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 -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>

您可能需要将两个规则都设置到位:一个用于空文件夹,一个用于其他文件,然后是底部的全部规则。 这没有经过测试:

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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM