添加垃圾也没有任何作用。
这表明.htaccess 根本没有处理文件。您需要设置AllowOverride All 在适当的<Directory> 主服务器配置中的容器(或<VirtualHost> 容器),以启用对每个目录的分析.htaccess 文件(允许.htaccess 覆盖服务器配置的指令)。
这个FollowSymLinks (或SymLinksIfOwnerMatch) 还需要启用选项才能使mod\\u rewrite正常工作。(尽管FollowSymLinks 默认情况下已启用。)可以在服务器配置或.htaccess 文件
例如:
<Directory /var/www/directory_name>
AllowOverride All
Options +FollowSymLinks
# etc...
Require all granted
</Directory>
在哪里
/var/www/directory_name 是你的
DocumentRoot 以及
.htaccess 文件
严格地说,你只需要AllowOverride FileInfo 在中启用mod\\u rewrite的使用.htaccess. 但是,如果以后使用授权指令、目录列表等,则需要启用更多组。
一如既往,在对服务器配置进行任何更改后,需要重新启动Apache才能使更改生效。
UPDATE: 也许我的SSL conf有问题?
由于您正在将服务器配置中的所有内容重定向到HTTPS,因此需要应用以上内容<Directory> 节到您的<VirtualHost *:443> 容器将此应用于<VirtualHost *:80> (即HTTP)不是必需的,在此处不起任何作用。
旁白:
RewriteEngine on
RewriteCond %{SERVER_NAME} =domain.com [OR]
RewriteCond %{SERVER_NAME} =www.domain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
您的HTTP到HTTPS重定向过于复杂,可以简化为单个mod\\u别名
Redirect 指令-此处不需要mod\\u重写的额外开销。
您还应该在此处规范化主机名(www或非www)。
例如:
Redirect 301 / https://www.example.com/