我有一个如下的网站https://domain.com/app/该网站有一个存放 Web 服务的文件夹。该文件夹的路径为https://domain.com/app/ws/api.php所有这些都运行正常,但是我希望 Web 服务路径为 http 而不是 https(从 api 调用中删除 https)我该如何实现这一点?我的 htaccess 如下所示
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
<VirtualHost *:80>
DocumentRoot /var/www/domain.com/public_html
ServerName www.domain.com
ServerAlias domain.com
Redirect permanent / https://domain.com
<Directory /var/www/domain.com/public_html>
AllowOverride All
</Directory>
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/domain.com/public_html
ServerAdmin [email protected]
ServerName www.domain.com
ServerAlias domain.com
ErrorLog /var/www/domain.com/log/error.log
CustomLog /var/www/domain.com/log/access.log combined
SSLEngine On
SSLCertificateFile /etc/ssl/domain.com.crt
SSLCertificateKeyFile /etc/ssl/domain.com.key
SSLCertificateChainFile /etc/ssl/domain.com.ca-bundle
<Directory /var/www/domain.com/public_html>
AllowOverride All
</Directory>
答案1
Redirect permanent / https://example.com
HTTP 虚拟主机中的错误是导致仅支持 HTTPS 连接的原因。
使用Rewrite更加合适。
RewriteEngine On
RewriteRule ^(ws)($|/) - [L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
第一条规则将结束重写处理,因此目录 /ws/.... 将不会重定向到 HTTPS。
删除 apache 虚拟主机中的重定向