4

使用 .htaccess,我希望将 URL 从一个文件夹重定向到另一个文件夹。

例如,如果用户请求“forbiddenFolder”http://www.mysite.com/forbiddenFolder/subfolder

或者

http://www.mysite.com/forbiddenFolder/somefile.php或者

http://www.mysite.com/forbiddenFolder/somefile.swf或者

http://www.mysite.com/forbiddenFolder/somefile.f4v.

他们应该被重定向到http://www.mysite.com/forbidden.php

我不想锁定目录本身,因为那里有需要的资源。重定向应该仅基于 URL 字符串或者如果用户从 www.anothersite.com 创建脚本并从http://www.mysite.com/forbiddenFolder 获取文件

我相信应该实施重写条件......?

4

1 回答 1

5

你可以试试这个:

Options +FollowSymLinks -MultiViews                                        
RewriteEngine On                                                           
RewriteBase /                                                              
RewriteCond %{REQUEST_URI}  ^/forbiddenFolder     [NC]                     
RewriteCond %{REQUEST_URI}  /[\w]+\.(php|swf|f4v) [NC,OR]                  
RewriteCond %{REQUEST_URI}  /[^.]+/?$             [NC]                     
RewriteCond %{REQUEST_URI}  !forbidden\.php       [NC]                     
RewriteRule .*              /forbidden.php        [L,NC]  
                                                                       

内部映射

http://www.mysite.com/forbiddenFolder/subfolder 或者

http://www.mysite.com/forbiddenFolder/somefile.php 或者

http://www.mysite.com/forbiddenFolder/somefile.swf 或者

http://www.mysite.com/forbiddenFolder/somefile.f4v

到:

http://www.mysite.com/forbidden.php

对于永久和可见的重定向,替换[L,NC][R=301,L,NC]


选项

使用经过修改的传入 URL 结构。

例如:

http://localhost/trafficticket.tv/Sites/public_html/forbiddenFolder/somefile.swf

用这个替换前一个规则块:

Options +FollowSymLinks -MultiViews                                        
RewriteEngine On                                                           
RewriteBase /                                                              
RewriteCond %{REQUEST_URI}  /forbiddenFolder      [NC]                     
RewriteCond %{REQUEST_URI}  /[\w]+\.(php|swf|f4v) [NC,OR]                  
RewriteCond %{REQUEST_URI}  /[^.]+/?$             [NC]                     
RewriteCond %{REQUEST_URI}  !forbidden\.php       [NC]                     
RewriteRule .* /trafficticket.tv/Sites/public_html/forbidden.php [L,NC]

要使用任何其他 URL,唯一的要求是/forbidden.php在重写规则中添加正确的段路径。在这种情况下,该段是

/trafficticket.tv/Sites/public_html

但它可能是任何东西,也可能什么都不是,就像原来的问题一样。

于 2013-03-11T00:50:21.903 回答