我有一个可用的 WordPress 站点,该站点还提供一个旧的平面文件夹。我已经在家里用 Ubuntu 22.04 和 XAMPP 设置了一个克隆环境,虽然 WordPress 部分很好,但尝试访问子文件夹会导致错误。
[Sun Feb 26 17:36:06.779271 2023] [core:alert] [pid 81557] [client 127.0.0.1:37060] /srv/www/site/classic/.htaccess: DirectoryIndex not allowed here
该文件夹具有与公共站点上相同的
.htaccess
文件:
DirectoryIndex index.html
如果我删除
.htaccess
我得到这个错误:
[Sun Feb 26 17:42:03.345577 2023] [autoindex:error] [pid 93553] [client 127.0.0.1:48984] AH01276: Cannot serve directory /srv/www/site/classic/: No matching DirectoryIndex (index.php) found, and server-generated directory index forbidden by Options directive
然而删除
.htaccess
后你不能只去http://site.local/classic/
它将与像http://site.local/classic/index.html
这样的显式页面一起工作。
我绝对不明白这些错误,因为一个似乎与另一个相矛盾。
因为我无法控制我的公共主机的
httpd-vhosts.conf
我假设错误在那里但无论修复是什么我都想在子文件夹设置中复制.htaccess
文件DirectoryIndex
而不仅仅是一个这个子文件夹的单一修复。
httpd-vhosts.conf
的相关部分:
<VirtualHost *:80>
DocumentRoot "/srv/www/site/"
ServerName site.local
<Directory /srv/www/site>
Options FollowSymLinks
AllowOverride Limit Options FileInfo
DirectoryIndex index.php
Require all granted
</Directory>
<Directory /srv/www/site/wp-content>
Options FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
网站根
.htaccess
(WordPress默认):
# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
这里绝对处于学习模式,因此欢迎所有建议。