Debian Apache2站点启用/deafult.conf重定向不正确?
关于我的apache2配置,我有以下问题: 我已在Debian Apache2站点启用/deafult.conf重定向不正确?,debian,apache2,http-redirect,apache-config,Debian,Apache2,Http Redirect,Apache Config,关于我的apache2配置,我有以下问题: 我已在etc/apache2/sites启用了此文件-文件夹中: <VirtualHost *:80> ServerName example.com DocumentRoot /var/www Redirect permanent / https://example.com/ </VirtualHost> <VirtualHost _default_:443> ServerName examp
etc/apache2/sites启用了此文件
-文件夹中:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost _default_:443>
ServerName example.com
DocumentRoot /var/www
SSLEngine On
# etc...
</VirtualHost>
ServerName example.com
DocumentRoot/var/www
重定向永久/https://example.com/
ServerName example.com
DocumentRoot/var/www
斯伦金安
#等等。。。
如果我输入https://example.com/mysite/start.php
在浏览器中。
但是如果我输入http://example.com/mysite/start.php
,我被重定向到https://example.com/mysite/start.phpmysite/start.php
并因此获得404错误消息。
我需要在配置文件中更改什么来防止该问题?谢谢你的帮助
编辑:
如果我输入
http://example.com/mysite/
我成功重定向到https://example.com/mysite/start.php
您应该使用重写规则,而不是使用重定向永久来实现https。
将代码替换为以下内容:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/ [R,L]
</VirtualHost>
<VirtualHost _default_:443>
ServerName example.com
DocumentRoot /var/www
SSLEngine On
# etc...
</VirtualHost>
并确保您已经在apache中启用了重写模块。
要启用modrewrite,请访问apache2模块目录cd/etc/apache2/mods available
运行以下命令a2enmod rewrite.load
并重新启动apache2服务apache2 restart
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/ [R,L]