我的页面位于共享主机上。一般来说,可以使用 http 和 https 访问网站。该页面提供广告,但大多数广告无法使用 https 访问,因此我只希望管理部分可以通过 https 访问。
我想要的是:
http://myurl.com/auth -> https://myurl.com/auth
http://myurl.com/admin -> https://myurl.com/admin
https://myurl.com/allotherstuff -> http://myurl.com/allotherstuf
基本上,所有对 auth 和 admit 的请求都应重定向以使用 ssl。对其他网站的请求应从 https 重定向到 http(如果页面是使用 https 请求的)。
我尝试了以下 .htaccess 文件,这使得“auth”和“admin”无法访问(重定向太多)。
<IfModule mod_rewrite.c>
RewriteEngine On
#Redirect other sites to http
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !^/?auth.*$
RewriteCond %{REQUEST_URI} !^/?admin.*$
RewriteRule ^/?(.*) http://%{SERVER_NAME}/$1 [R,L]
#Redirect auth and admin to https
RewriteCond %{HTTPS} !=on
RewriteRule ^/?auth/(.*) https://%{SERVER_NAME}/auth/$1 [R,L]
RewriteCond %{HTTPS} !=on
RewriteRule ^/?admin/(.*) https://%{SERVER_NAME}/admin/$1 [R,L]
</IfModule>
是否可以使用 mod_rewrite 来实现这一点?
答案1
好的,如果要将 http 转换为 https,请安装自签名证书
答案2
您可以在 .htaccess 文件中添加此代码
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^tset.com/tset$ [NC]
RewriteRule ^/?$ "https://test.com/test" [R=301,L]
</IfModule>