【发布时间】:2020-06-17 13:29:33
【问题描述】:
我已修改我的 Debian 9 安装 (Apache 2.4.25) 以允许 HTTP/2 支持。
我已成功在线检查,页面 确实 提供服务,但问题在于在 .htaccess 中执行的重定向到地图,例如 site.com/index.php/brands/mybrand到一个不错的网址(site.com/brands/mybrand)。它根本不会发生。这是一个 Codeigniter 设置。
- 有问题的步骤似乎是当我禁用当前模块(
a2dismod php7.2和mpm_prefork)并启用支持 HTTP/2 的 mpm 模块(a2enmod mpm_event,但我也尝试了mpm_worker)。 - 此时我得到“找不到文件”(404 错误)
- 通过还原这两个步骤,我恢复正常(当然没有 HTTP/2)
下面的 mod_rewrite.c 条件是否因加载 mpm_worker 模块而失效?有的话怎么换?
编辑:详细的日志显示此错误: AH01071: 出现错误“主脚本未知\n”,引用者:https://sitename.com/brands/
我的 .htaccess(在 index.php 所在的品牌目录中)与以前的配置一起工作正常是:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</IfModule>
<IfModule mod_headers.c>
<FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css)$">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>
IndexOptions +Charset=UTF-8
我的/etc/apache2/sites-enabled/default-ssl.conf相关内容包括:
<VirtualHost _default_:443>
# even without enabling here h2c or h2 I get the error
Protocols http/1.1
<Directory "/var/www/html">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
# since apache 2.4
Require all granted
</Directory>
</VirtualHost>
注意:我之前为启用所需的其他模块而运行的其他命令如下。我无需触摸任何内容即可恢复到工作(非 HTTP/2)配置:
apt-get install php7.2-fpm
a2enmod proxy_fcgi setenvif
a2enconf php7.2-fpm
编辑:
问题是由于内部重定向造成的。现在已经修复了。
【问题讨论】:
标签: apache .htaccess mod-rewrite debian http2