PHP 5.6 和 Plesk 中的 .htaccess

.htaccess in PHP 5.6 and Plesk

我试图阻止直接访问子目录和特定文件。我的文件如下所示:

.htaccess 在 httpdocs:

RewriteEngine on 
Options All -Indexes 
RewriteRule ^(config\.php) - [F,L,NC]

vhost.conf 在 vhosts/domain.test/conf:

<Directory "D:\inetpub\vhosts\domain.test\httpdocs">
AllowOverride All
</Directory>

在我的本地机器上使用 XAMPP(标准设置)一切正常。访问 config.php 被拒绝。服务器只是忽略 .htaccess 文件。我在 Windows Server 2016 VM 上使用 Plesk 17.8.11 (Onyx)。

我重新启动了 IIS,但仍然可以通过 URL 打开 config.php(即使结果是空白屏幕)。我还尝试添加:

LoadModule rewrite_module modules/mod_rewrite.so

我在 Plesk PHP-设置中的“附加指令”,但它也没有这样做。

有人有想法吗?

Windows 中的 .htaccess 等同于 web.config 文件,因此可以在 Windows 服务器上使用 IIS 上的 .htaccess 规则,但必须这样做通过上述文件。

web.config 文件的语法与 .htaccess 文件不同,因此需要进行翻译。

以下链接将有助于理解 .htaccess 文件并将其转换为 web.config https://docs.microsoft.com/en-us/iis/application-frameworks/install-and-configure-php-applications-on-iis/translate-htaccess-content-to-iis-webconfig