gpt4 book ai didi

.htaccess - 在整个站点范围内删除 www,在某些目录上强制使用 https,在其余目录上强制使用 http?

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:37 26 4
gpt4 key购买 nike

首先,我想删除 www.来 self 的域名

http://www.example.com => http://example.com

我还希望某些目录是安全的 (https),​​而其余的仍然是 http

http://example.com/login => https://example.com/login

显然它需要适用于所有条件,例如,如果有人输入:

http://www.example.com/login => https://example.com/login

此外,当人们离开登录页面时,它会返回到 http。目前在 .htaccess 中是以下由我正在使用的软件自动完成的,我想它需要在那里才能工作:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* ./index.php

关于如何实现 梦想控制 所有这些事情,我有什么想法吗?

提前致谢!

===================

@Gumbo 按照你的建议,这是我完整的 .htaccess

RewriteEngine On


# remove www from host
RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+)
RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301]

# force HTTPS
RewriteCond %{HTTPS} =off
RewriteRule ^(login)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# force HTTP
RewriteCond %{HTTPS} =on
RewriteRule !^(login)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* ./index.php


Options -Indexes

导航到 http://example/login仍然去 http://example/index.php什么时候应该转到https://example/login我的顺序错了吗?

最佳答案

试试这些规则:

# remove www from host
RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+)
RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301]

# force HTTPS
RewriteCond %{HTTPS} =off
RewriteRule ^(login|foo|bar|…)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# force HTTP
RewriteCond %{HTTPS} =on
RewriteRule !^(login|foo|bar|…)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

您可能还想添加一些附加条件以仅更改 GET 和 HEAD 请求的协议(protocol),而不更改 POST 请求的协议(protocol)。

关于.htaccess - 在整个站点范围内删除 www,在某些目录上强制使用 https,在其余目录上强制使用 http?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4192948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com