修复您的 Apache/htaccess 配置 HTTP 错误 500

问题描述 投票:0回答:1

在根目录中,我正在运行 WordPress,在根目录中,我有一个名为“y”的目录,我在其中运行 yourls url 缩短平台。 Wordpress 应通过 www.example.com 访问,而 Yourls 应通过 example.com/y/.

访问

一直运行良好,直到我从共享托管切换到使用 Plesk/Apache/Nginx、通过 Cloudflare 配置的 DNS 和 SSL 设置的 VPS。

Root/Wordpress 工作正常,但 y/yourls 抛出 HTTP ERROR 500,并且在 /var/www/vhosts/system/example.com/logs/error_log 中没有捕获日志。

访问 https://example.com/y/ 尝试加载我放置在那里的虚拟 index.html,表明它不遵循 htaccess 文件中提到的 RewriteRule。

如何解决这个问题?我可以做什么来进一步调试这个问题?

根目录.htaccess 根据wordpress的要求

<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>

y 目录 .htaccess 按照您的文档中的建议

# BEGIN YOURLS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /y/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /y/yourls-loader.php [L]
</IfModule>
# END YOURLS

我的 apache 配置位于 /var/www/vhosts/system/example.com/conf/httpd.conf ,除其他外,此配置有两次,一次用于端口 7080 上的虚拟主机,另一次用于端口 7081 上的虚拟主机

<Directory /var/www/vhosts/example.com>
                        Options -FollowSymLinks
                        AllowOverride AuthConfig FileInfo Indexes Limit Options=Indexes,SymLinksIfOwnerMatch,MultiViews,ExecCGI,Includes,IncludesNOEXEC
</Directory>
apache .htaccess plesk yourls
1个回答
0
投票

事实证明我的 .htaccess 和 apache 配置实际上很好,问题实际上是由我在新主机设置上使用的较新 PHP 8 版本与旧共享托管设置上使用的 PHP 7 引起的。

此问题已由 Yourls 修复,并在此 PR 中提及。通过升级到最新的 Yourls 版本 1.9.2,一切都恢复正常。

© www.soinside.com 2019 - 2024. All rights reserved.