HTACCESS:如何阻止访问所有文件和文件夹,但在某些情况下重定向到某个PHP文件

时间:2015-03-08 08:52:27

标签: php apache .htaccess mod-rewrite redirect

我已经成功地让我的网站的黑客无法访问一个实际的文件夹(如果在主URL之后键入非文件夹名称,甚至可以获得404消息).htaccess列表:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . / [L,R=301]

这很好用。但是,我希望情况是 IF 有人在URL之后添加文本ABC,然后该网站将重定向到XYZ.PHP。例如:

www.mysite.com/abc

...重定向到:

www.mysite.com/xyz.php

(ABC和XYZ显然只是实际文本的占位符。)在保留上述.htaccess代码完成所有功能的同时,最有效的方法是什么?

2 个答案:

答案 0 :(得分:0)

你可以这样做:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^abc$ "/xyz.php" [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . / [L,R=301]

更新:正如@bloodyKnuckles注意到的那样,/丢失了。

答案 1 :(得分:0)

在“catch-all”规则之前添加特定的RewriteRule,在/之前使用正斜杠xyz.php,可以在我的设置上运行。

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^abc$ /xyz.php [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . / [L,R=301]

使用正斜杠指示apache在Web服务器根目录中查找替换路径。 (作为补充说明,重定向(R=301)在我的浏览器中进行了缓存,因此每次进行更改时我都会尝试打开一个新的Chrome隐身窗口。)