gpt4 book ai didi

zend-framework - htaccess https 仅在特定的 Zend Frameworks Controller /操作上重定向

转载 作者:太空宇宙 更新时间:2023-11-03 15:06:44 25 4
gpt4 key购买 nike

我是这个社区的新手,但我发现它有时真的很有用。

我搜索了很多答案,但没有找到我需要的任何东西。我已经尝试自己解决它,但我仍然遇到错误,所以我希望找到可以向我展示正确方法的人...:-)

我有一个“经典的”ZF 网站,其中有许多 Controller /操作 url,这些 url 使用 .htaccess 文件重定向到 index.php。

现在,我需要的是将几个 Controller 重定向到 https ssl 连接,排除两个 Controller 的某些操作。

我尝试这样做的方式是:


Options +FollowSymLinks

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^mydomain\.tld [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond $1 ^!((member|shop)/(?!(index|login))(.*))
RewriteRule ^(.*) http://%{HTTP_HOST}/$1 [L,R=301]

RewriteCond %{HTTPS} off
RewriteCond $1 ^((member|shop)/(?!(index|login))(.*))
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !\.(js|ico|gif|jpg|png|css|swf|pdf|txt)$ index.php

当我去/member controller 时它似乎工作但是,当我转到另一个 Controller 时,例如/index 或/about 它不会重定向到 http 连接(端口 80),如果我尝试稍微更改重写条件正则表达式,它有时会执行重定向循环和浏览器给我一条通知,阻止与该站点的连接。

有没有人可以向我展示在我的重写条件下使用的正确语法,以允许两个 Controller (不包括给定的操作)在 https 连接下并在更改 Controller 时返回到标准 http 连接?

提前致谢。

亚历山德罗

最佳答案

试试这些规则(替换适当的行):

RewriteCond %{HTTPS} on [NC]
RewriteCond %{REQUEST_URI} !^/(member|shop)/ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301]

RewriteCond %{HTTPS} off [NC]
RewriteCond %{REQUEST_URI} ^/(member|shop)/ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]
  1. 这些规则有点简单(HTTPS 将应用于 /member//shop/ Controller 中的所有 URL(例如 /member/login, /member/dashboard, /member/orders/15423/invoice 等)
  2. Negate ! 应该在 RewriteCond 指令中 before ^ -- 如果你想要自己的规则,那么替换 RewriteCond $1 ^! ((member|shop)/(?!(index|login))(.*)) 通过 RewriteCond $1 !^((member|shop)/(?!(index|login))( .*))

关于zend-framework - htaccess https 仅在特定的 Zend Frameworks Controller /操作上重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6580154/

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