2012-11-27 137 views
0

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

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

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

重定向不起作用,如果我输入f ollowing网址:

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> 

回答

2

你可能需要把两个规则的地方:一个是空文件夹,一个用于其他文件,然后将捕获所有在底部。这未经测试:

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] 
+0

感谢您的帮助。我尝试过,但没有奏效。我不知道为什么。我设置了两个测试文件夹并在其中放入一个文件。在我的htaccess中,我有以下'RewriteRule^test /(.*)$ http://www.yoursite.com/test2/$1 [L,R = 301]'。此重定向工作。如果我将其适应到我的真实文件夹,它将停止工作... – testing

+0

我发现了错误。我的文件夹中有一个旧的.htaccess-a。这停住了重定向工作。我以为我删除了它...顺便说一句:我删除了这个规则'重写规则^文件夹-a/http://www.yoursite.com/folder-b/ [L,R = 301]'因为我比重定向到文件夹-b/index.php的。 – testing

相关问题