我有 2 个文件夹,客户关系管理和我的网站。
my_website 可以访问https://example.com/(它将 http 更改为 https),而 CRM 是http://example.com/crm.这是我的虚拟主机
000-默认.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html/my_website
Redirect / https://example.com/
Alias /crm /var/www/html/crm
</VirtualHost>
我的网站配置文件
<VirtualHost *:443>
ServerName Example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/my_website
Alias /crm /var/www/html/crm
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/sll.crt
SSLCertificateKeyFile /etc/apache2/ssl/private1.key
SSLCertificateChainFile /etc/apache2/ssl/intermediate1.crt
</VirtualHost>
问题是 CRM 更改为 https,而不是 http。
答案1
没错,因为你已为 VirtualHost 全局列出了 Redirect 指令,这将影响该主机上的每个 URL。如果你需要为特定 URL 指定此指令,则至少有 2 个选项:
您可以像本例中一样定位部分:https://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect
您可以在适当的目录中使用.htaccess 文件。
答案2
接下来删除以下行
Redirect / https://example.com/
并尝试使用 mod_rewrite规则来设置你的 https 重定向:
RewriteEngine on
RewriteRule !^crm($|/) https://example.com%{REQUEST_URI} [L,R=301]