如何将 http 重定向到 https 而其他文件夹仍为 http?

如何将 http 重定向到 https 而其他文件夹仍为 http?

我有 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 个选项:

  1. 您可以像本例中一样定位部分:https://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect

  2. 您可以在适当的目录中使用.htaccess 文件。

答案2

第一的启用mode_rewrite

接下来删除以下行

Redirect / https://example.com/

并尝试使用 mod_rewrite规则来设置你的 https 重定向:

RewriteEngine on
RewriteRule !^crm($|/) https://example.com%{REQUEST_URI} [L,R=301]

相关内容