- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我真的希望有人知道我在这里做错了什么,因为我肯定不知道!
我们网站上有一个特定页面,其中包含帐户余额信息,我们希望通过 SSL 确保其安全。但我们只希望这一特定页面是安全的。我在 localhost:80 虚拟主机中有以下内容,并且运行良好:
RewriteCond %{HTTPS} off
RewriteCond %{SCRIPT_FILENAME} \/account\.php(.*) [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [QSA,L]
但是,正如您可能猜到的那样,我们希望所有其他页面都只使用 HTTP。所以我将这个小片段插入到我的 localhost:443 虚拟主机中:
RewriteCond %{HTTPS} on
RewriteCond %{SCRIPT_FILENAME} !\/account\.php(.*) [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [QSA,L]
...这就是问题发生的时候。返回 HTTP 没有问题,但是当我单击链接转到帐户页面时,它会更改为 HTTPS,但我立即收到错误 302 响应。当我删除这些重写规则中的任一个时,我没有收到此响应,只有当它们都存在时才会发生。
我尝试用 [R]
和 [R=301]
替换 [QSA]
,但无济于事。
(我知道 %{HTTPS}
开/关有点多余;))
所以我有两个问题:
[QSA]
是否与 $1
多余?我们经常使用 GET
方法来指定页面和其他内容。
我们使用的是 PHP 5.2.9 和 Apache 2。
提前致谢!
布莱恩
最佳答案
虽然它在这里(并没有移动到 serverfault)..尝试
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/account\.php https://%{HTTP_HOST}/account.php [R=301,QSA,L]
HTTP/1.1 302 = 找到(并且不是错误代码),但暂时在另一个位置。
编辑实际上,当您将代码放在单独的 VirtualHost 中时,您也可以这样做
(In :80)
RewriteRule ^/account\.php https://%{HTTP_HOST}/account.php [R=301,QSA,L]
(in :443)
RewriteCond %{REQUEST_URI} !/account\.php$
RewriteRule ^(.*) http://%{HTTP_HOST}$1 [R=301,QSA,L]
关于apache - 使用 Apache Rewrite 从 HTTP 转到 HTTPS,反之亦然,但我收到 302 响应并且我的应用程序出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2287107/
我有一个使用moodle库的项目。由于客户端请求,我不得不将 URL 从moodle.example.com 更改为learn.example.com。 我认为这将是一个简单的更改,但唉,moodle
目前,在我的生产服务器上,我设置了如下的入站规则,它可以满足我的所有要求。 入站规则如下。 Match URL section Requested URL: Matches the Pattern U
我正在 Heroku cedar 堆栈上运行一个 PHP 应用程序。有没有办法设置 URL 重写规则?我曾希望在 .htaccess 文件中执行此操作,但在此只能识别访问控制指令。 我看到 Ruby
我正在尝试在运行 CentOS 6.4 和 NginX 1.8 的 VPS 上设置 Laravel 框架。我可以让其他一切都完美地工作,除了我无法让更清晰的 URL 工作,比如使用“website.c
我刚刚从 IIS6 svr2003 迁移到 IIS7.5 服务器 2008r2 并安装了 url 重写。这一切都很好。有问题的网站很大,并且在 .net 2 集成管道下运行。目前无法在 .net 4
首先是一些无聊的进口: import Relation.Binary.PropositionalEquality as PE import Relation.Binary.HeterogeneousE
我正在 IIS 6 上构建一个 Drupal CMS 网站,并使用 ISAPI Rewrite 3 来提高 url 的可读性。我的问题是我有一个位于 Drupal 站点内的虚拟目录,但它指向 Drup
每个网络应用程序/上下文有没有办法为该特定网络应用程序指定重写文件?我看到当前工作的唯一方法是在您启动它时通过命令行。我在想可能是 override.xml 文件中的设置,甚至是上下文 xml 文件中
我想为基于 Struts2 的应用程序(目前在开发环境中)重写 URL。我搜索了它并找到了 Tuckey URL Rewrite 并在我的项目中进行了设置。现在我希望我的登录 url 当前为 http
我正在尝试使用 IIS URL Rewrite 2.0在 Windows 8.1 上使用 IIS 8.5。根据 Accessing URL Parts from a Rewrite Rule , Fo
我们有以下重写规则: RewriteRule ^([A-Za-z0-9\_]+)$ index.php?rewrite=$1 [L,QSA] 我们想知道是否有一种方法可以让 ?rewrite=$1
我们有以下重写规则: RewriteRule ^([A-Za-z0-9\_]+)$ index.php?rewrite=$1 [L,QSA] 我们想知道是否有一种方法可以让 ?rewrite=$1
我从 Web 平台安装程序安装 URL Rewrite。没有添加规则。然后,当我访问网站 url 时,它返回 503 代码并且应用程序池已停止。当我从控制面板中卸载 URL 重写模块时,它工作正常。
假设我在 example.com 上托管了一个站点,现在我希望我的每个注册用户都获得一个个性化的子域,例如 Alice 通常应该将 alice.example.com 作为她的子域。而实际上 alic
我正在按照Jetty文档示例在嵌入式Jetty服务器中实现一个简单的重写规则。 我想将对/admin/的请求重写为/admin.html。 目前,如果我请求/admin/,则会收到404错误,找不到/
我有这个重写规则 RewriteEngine On RewriteBase /location/ RewriteRule ^(.+)/?$ index.php?franchise=$1 假设要更改此
Closed. This question is off-topic。它当前不接受答案。 想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。 7年前关
我有两个 apache 服务器都具有相同的设置,我克隆了 apache 配置文件,并且只更改了 ServerName 部分。当我键入 mysite.com/somestuff 它应该重写为 index
我想即时创建文件夹,但让我看起来像是在使用 mod_rewrite 即时创建子域。例如 使用 PHP 创建“john”文件夹 www.example.com/john/ 然后能够访问我放在那里的任何内
如何删除main/中的http://domain/main/about 因此该网址将类似于http://domain/about 谢谢 最佳答案 好吧,在没有更多详细信息的情况下,您可以尝试执行以下操
我是一名优秀的程序员,十分优秀!