Mod_rewrite:在特定页面上强制使用 SSL。在非安全页面上添加 www

2024-02-08

我知道这是一个常见的话题,但我已尽最大努力借助在网上搜索到的解决方案来解决它。

我们有一个链接到子域 secure.mysite.com 的证书,我们希望实现以下目标:

  1. 我们需要在以下路径及其子页面上强制使用 SSL:
    http://mysite.com/services[/.../...] => https://secure.mysite.com/services[/.../...]
    http://mysite.com/login[/.../...] => https://secure.mysite.com/login[/.../...]
    http://mysite.com/member[/.../...] => https://secure.mysite.com/member[/.../...]
    http://mysite.com/admin[/.../...] =>https://secure.mysite.com/admin https://secure.mysite.com/admin

  2. 我们要在所有非安全路径上添加 www(除上述路径外的所有路径)

  3. 我们想要删除所有安全路径上的 www(上面提到的所有路径)

以下是我放入 .htaccess 文件中的内容,但没有成功:

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

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

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

# add www from host when HTTP
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

# Zend redirect logic
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

经过一些更正:

RewriteEngine On

# force HTTPS
RewriteCond %{HTTPS} =off
RewriteRule ^(services|login|member|admin) https://secure.mysite.com%{REQUEST_URI} [L,R=301]

# force HTTP
RewriteCond %{HTTPS} =on
RewriteRule !^(services|login|member|admin) http://mysite.com%{REQUEST_URI} [L,R=301]

# remove www from host when HTTPS
RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]

# add www from host when HTTP
RewriteCond %{HTTPS} =off
RewriteCond %{HTTP_HOST} !^(www|secure)\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mod_rewrite:在特定页面上强制使用 SSL。在非安全页面上添加 www 的相关文章

随机推荐

  • 使用 JsonProperty 将 JSON 绑定到模型属性

    我受我方和客户之间协议的约束 必须使用包含破折号的 json 参数 由于无法在 C 中的属性名称中使用它 因此我需要映射到所需的属性 我现在应该做什么 为了方便起见 下面的代码被简化了 Model public class MyReques
  • Maven-Release-Plugin:强制使用 scm 提供程序的特定版本

    我正在尝试将我们的存储库从 SVN 迁移到 Git 但在一个非常大的项目上使用发布插件时遇到了问题 Problem 该项目大约有 50 多个子模块 它尝试将所有修改后的 poms 添加为一个 git add 这打破了Windows命令行的限
  • 慢速 SQL 查询:在两个不同的连接中使用同一个表会导致查询速度变慢 10 倍!

    真的希望某种性能专家可以向我解释为什么单个连接会导致查询速度慢 10 倍 另外 请不要嘲笑这个查询的大小 我想取出数据库中的整个目录以通过一个查询输出 我不确定将其分解为较小的查询是否会更快 但是似乎不对 SELECT c category
  • 如何在yii2中使用if语句正确查看表数据

    我正在研究yii2 我有一个页面 我在其中创建了一个表 现在我想通过数据库查询将一些数据放入其中if else陈述 tbody style text align center line height 12px tbody
  • 在 Windows 上从 bash 脚本运行 Openssl - 主题不以“/”开头

    在我的脚本中我有 openssl req x509 new nodes key certs ca my root ca key pem days 3652 out certs ca my root ca crt pem subj C GB
  • WinForm CRUD 应用程序的 UI 设计,有什么作用?

    我正在设计一个 WinForms CRUD 类似 应用程序 供一大群护士和社会工作者与客户信息进行交互 有很多种不同的形式 大约30ish 他们需要 可能 与任何给定的客户进行交互 并且他们 可能 需要为特定的人从一个客户跳到另一个客户 我
  • 按字节截断字符串

    我创建以下内容 用于将 java 中的字符串截断为具有给定字节数的新字符串 String truncatedValue String currentValue string int pivotIndex int Math round dou
  • 我如何用更少的node_modules创建react-app

    我用过create react app
  • RegExp 和 String 组合导致 Chrome 崩溃

    我有以下正则表达式来验证电子邮件地址 A Za z0 9 a zA Z0 9 A Za z0 9 a zA Z0 9 A Za z 2 在基本电子邮件上运行它效果很好 A Za z0 9 a zA Z0 9 A Za z0 9 a zA Z
  • 使用 *args 和 **kwargs [重复]

    这个问题在这里已经有答案了 所以我对这个概念有困难 args and kwargs 到目前为止我了解到 args 参数列表 作为位置参数 kwargs 字典 其键成为单独的关键字参数 值成为这些参数的值 我不明白这对什么编程任务有帮助 Ma
  • 如何同时使用 telegram bot python

    我不知道如何使用 python 在电报中使用机器人进行多进程 我创建了一个线程 但如果该线程未完成 机器人将无法回复消息 horaPurga now replace hour 23 minute 36 second 59 microseco
  • RESTEasy - javax.ws.rs.NotFoundException:找不到完整路径的资源

    我尝试在 GWT 项目中使用 RESTEasy 实现 REST 服务 但是当我进入相应的 URI 时 应用程序返回 Grave failed to execute javax ws rs NotFoundException Could no
  • 不活动后会话自动注销

    快速会话中是否有内置功能 可以在给定的不活动时间后启用自动注销 我如下使用它 并希望它在会话半小时不活动时注销 app use session key sessid secret This is secret resave true sav
  • C#“使用”块

    我有类似下面的代码 这里有人提到 WebClient Stream 和 StreamReader 对象都可以从使用块中受益 两个简单的问题 1 这个小片段在使用块时会是什么样子 我自己做研究没有问题 所以资源链接很好 但只看一个例子会更快更
  • 与具有私有成员函数的类相比,未命名命名空间中的自由函数有什么好处?

    与拥有不带任何参数的私有类成员函数并直接访问成员变量相比 拥有自由函数 在匿名命名空间中并且只能在单个源文件中访问 并将所有变量作为参数发送有什么优势 header class A int myVariable void DoSomethi
  • C# 中的赋值运算符

    据我了解 与 C 不同 在 C 中不可能重写赋值运算符 如果我们想要将类 C 的实例 i1 分配给另一个实例 i2 C 类 则有必要创建一个复制方法 但困境来了 我有一个通用的 T 类 public class Node
  • 如何选择 div 内的图像来更改其来源?

    我有以下 div 并且我知道该 DIV 的选择器 Id div class event img src Content Images Icons calendar16 png Event Name div 但我不知道 图像是什么 我需要一些
  • 是否有可能在 Swift 中创建一个仅限于一个类的数组扩展?

    我可以制作一个仅适用于字符串等的数组扩展吗 从 Swift 2 开始 现在可以通过以下方式实现协议扩展 为符合类型提供方法和属性实现 可选地受到附加约束的限制 一个简单的例子 为所有符合的类型定义一个方法 到SequenceType 例如A
  • Hive 中的 ParseException

    我正在尝试使用UDF在蜂巢中 但是当我尝试使用创建临时函数时userdate as unixtimeToDate 我得到这个异常 hive gt create temporary function userdate1 as unixtime
  • Mod_rewrite:在特定页面上强制使用 SSL。在非安全页面上添加 www

    我知道这是一个常见的话题 但我已尽最大努力借助在网上搜索到的解决方案来解决它 我们有一个链接到子域 secure mysite com 的证书 我们希望实现以下目标 我们需要在以下路径及其子页面上强制使用 SSL http mysite c