1

目前我有以下限制对脚本的直接访问,除了三种情况:

RewriteEngine on
RewriteCond %{REQUEST_URI} !read_dir [NC]
RewriteCond %{REQUEST_URI} !get_ac_options [NC]
RewriteCond %{REQUEST_URI} !view_log [NC]
RewriteRule ^inc/php /cms_spider3?script_access_attempt [NC]

前两个条件有效(也就是说,我可以访问 read_dir.php 和 get_ac_options.php),但第三个规则被忽略

也就是说,访问

/my/server/view_log.php

...总是导致重定向。view_log.php 和其他两个的唯一区别是其他两个总是通过 AJAX 访问,而 view_log.php 是直接在浏览器中访问的。我无法想象这会导致差异,但我想我会提到它。

我不是 mod-rewrite 方面的专家,所以我的全部内容可能会写得更好。(我什至不确定是什么[NC]- 我只是从一些示例代码中保留了它。)

4

1 回答 1

1

it's possible the entirety of what I have could be better written.

您的规则可以更好地重写为:

RewriteEngine on

RewriteCond %{REQUEST_URI} !(read_dir|get_ac_options|view_log) [NC]
RewriteRule ^inc/php /cms_spider3?script_access_attempt [L,NC]

NC 用于No Case(忽略大小写匹配) L 用于最后一条规则

参考:Apache mod_rewrite 简介

于 2013-11-11T11:52:47.630 回答