htaccess с включенным RewriteEngine вызывает ошибку 403.
Windows Server 2022
Apache 2.4.57 x64
httpd.conf — актуально
<Directory />
Options none
AllowOverride none
Require all denied
</Directory>
DirectoryIndex index.html
<Files ".ht*">
Require all denied
</Files>
httpd-vhosts.conf — актуально
<VirtualHost *:443>
DocumentRoot "c:/path/to/public_html"
DirectoryIndex index.php
<Directory "c:/path/to/public_html">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
файлы
c:/path/to/public_html/index.php
c:/path/to/public_html/.htaccess
.htaccess — полный
RewriteEngine Off
КогдаRewriteEngine Off
затем служитindex.php
КогдаRewriteEngine On
тогда https://www.example.com/https://www.example.com/ приведет к ошибке 403-Forbidden
Я упускаю какую-то очевидную директиву?
Примечание. Описанное выше поведение остается прежним, даже если явно запрошен https://www.example.com/index.php .
1 ответ
ЗАФИКСИРОВАННЫЙ!
<VirtualHost *:443>
DocumentRoot "c:/path/to/public_html"
## NEW
RewriteEngine On
DirectoryIndex index.php
<Directory "c:/path/to/public_html">
AllowOverride All
Require all granted
## NEW
Options +FollowSymlinks
</Directory>
</VirtualHost>
Проверка журналов показала:
[перезапись: ошибка] AH00670: параметры FollowSymLinks и SymLinksIfOwnerMatch отключены, поэтому директива RewriteRule также запрещена из-за ее аналогичной способности обходить ограничения каталога.
RewriteRule с помощью RTFM показывает:
Чтобы включить механизм перезаписи в этом контексте, вам необходимо установить «RewriteEngine On» и «Параметры FollowSymLinks» должны быть включены.
Лицо, знакомьтесь с ладонью.