Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess重定向-如何和哪个目录?_.htaccess_Mod Rewrite - Fatal编程技术网

.htaccess重定向-如何和哪个目录?

.htaccess重定向-如何和哪个目录?,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我有一个类似这样的目录结构 根 助理署长A 内容 管理员 我有一些文件在管理员,我需要。htaccess禁止。我知道他们应该在根之外,但在这种情况下我不能。htaccess将直接请求(例如Sub Dir a/Admin/abc.php)(例如禁用文件)重定向回Sub Dir a/Admin/index.php的正确语法是什么?这只是一个示例。注意“abc.php”可能是一个include,所以它应该只是一个直接请求。哦,忘了问一下,把.htaccess文件放在哪个目录下了如果你真的想

我有一个类似这样的目录结构

    • 助理署长A
    • 内容
    • 管理员


我有一些文件在管理员,我需要。htaccess禁止。我知道他们应该在根之外,但在这种情况下我不能。htaccess将直接请求(例如Sub Dir a/Admin/abc.php)(例如禁用文件)重定向回Sub Dir a/Admin/index.php的正确语法是什么?这只是一个示例。注意“abc.php”可能是一个include,所以它应该只是一个直接请求。哦,忘了问一下,把.htaccess文件放在哪个目录下了如果你真的想用mod_rewrite做这个,那么规则可以是:

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteRule ^abc\.php$ http://www.example.com/subdir_a/admin/index.php [R=301,L]
如果您试图直接访问
abc.php
,将发出301永久重定向

这将放在
/subdir\u a/admin/
文件夹中的.htaccess中

如果愿意,您可以将其放在网站根文件夹中的.htaccess文件中,然后稍微修改一下重写规则,以包含到
abc.php
的路径:

RewriteRule ^subdir_a/admin/abc\.php$ http://www.example.com/subdir_a/admin/index.php [R=301,L]

或者,您可以发出403拒绝访问响应:

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteRule ^abc\.php$ - [F,L]

通常的做法是不依赖.htaccess和mod_rewrite(在某些共享托管计划中可能不可用,或者由于性能原因而禁用),而是使用PHP脚本端检查:

一,。放在包含/保护的文件(例如abc.php)中:

二,。要放置在调用/主脚本中(您可以直接访问):


LazyOne-Brill非常感谢您的解释,但是---始终是关于文件is.sqlite而不是php,我仍然可以通过直接访问下载OK,在它(sqlite)中不多,只是为了测试,但我确实需要阻止访问。可能是传递admin dir的最佳方式?这取决于您——但我会永久阻止对*.sqlite的所有请求(不管密码保护如何)——并且只允许通过FTP访问它。为了在全球范围内阻止它(对于整个站点),您可以尝试这个规则:<代码> ReWrite Eule.SQLite -[r=404,L] < /代码>(可以放置在网站根目录.HTAccess)中,它将发布404个未找到响应,您可以认为它比403更安全/更友好(403种说法:“文件可能在这里,但您不能访问它”,而404告诉:“不知道你在说什么,这里不是这样的文件——谢谢你的访问”)。再次非常感谢这里的一些非常好的代码我总是在defined('ENTRY\u POINT\u MARK')上使用一个稍微不同的版本,但是你的版本更好,重写工作“处理”也给了db一个“奇怪”的结果“个人更喜欢301或404的扩展和阻止-还是BRILL!:)
RewriteRule^subdir/index\.php$/subdrir/content/index.php[L]
——如果将其放在htaccess中
/subdir/
上方的文件夹中(例如网站根目录)。或者
RewriteRule^index\.php$content/index.php[L]
如果放在
/subdir/.htaccess
中(可能需要在
content/
之前添加一个斜杠——重复检查,因为我通常将所有规则都放在一个文件中——更易于管理)。我没有博客或网站。把它作为单独的问题贴出来,我相信我或其他人会回答的。
if (!defined('ENTRY_POINT_MARK')) {
    header('HTTP/1.1 403 Access Denied', true, 403);
    exit();
}
define('ENTRY_POINT_MARK', 'EntryPointMark');