使用.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中提取文件
我认为应该实施重写条件......?
答案 0 :(得分: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]
使用修改后的传入网址结构。
例如:
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
但它可能是任何事情或者什么都不是,就像在最初的问题中一样。