相关疑难解决方法(0)

如何强制用户通过HTTPS而不是HTTP访问我的页面?

我只有一个页面,我想强制作为HTTPS页面访问(Apache上的PHP).如何在不使整个目录需要HTTPS的情况下执行此操作?或者,如果您从HTTP页面向HTTPS页面提交表单,它是通过HTTPS而不是HTTP发送的吗?

这是我的例子:

http://www.example.com/some-page.php
Run Code Online (Sandbox Code Playgroud)

我希望它只能通过以下方式访问:

https://www.example.com/some-page.php
Run Code Online (Sandbox Code Playgroud)

当然,我可以把这个页面的所有链接指向HTTPS版本,但这并不能阻止一些傻瓜故意通过HTTP访问它...

我想到的一件事是在PHP文件的标题中放置一个重定向来检查以确保它们正在访问HTTPS版本:

if($_SERVER["SCRIPT_URI"] == "http://www.example.com/some-page.php"){
  header('Location: https://www.example.com/some-page.php');
}
Run Code Online (Sandbox Code Playgroud)

但这不是正确的方法,可以吗?

顺便说一句,请不要注意URL.我知道如果它实际上是一个有购物车等的页面,你会以不同的方式做到这一点.您可以将其视为一个网站,该网站以一个价格销售一件商品,您可以在其中输入您的信用卡信息,然后将其提交到外部网站上的支付网关,以便明确向您的卡收费一次.

php apache ssl https

133
推荐指数
9
解决办法
16万
查看次数

使用mod_rewrite强制SSL/HTTPS

我有一个Zend Framework应用程序,我想使用mod_rewrite强制进入HTTPS.当谈到mod_rewrite时,我很迷茫.这是我应用程序根目录中的当前.htaccess文件.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule !\.(html|htm|php|js|ico|gif|jpg|png|css|csv)$ /subdir/index.php
Run Code Online (Sandbox Code Playgroud)

根据我拥有的内容强制应用程序进入HTTPS的最佳方法是什么?我已经尝试了一些我在这里找到的例子,但是当我尝试它时,我不断得到重定向循环或内部服务器错误.

谢谢你的帮助!

mod-rewrite ssl https redirect

27
推荐指数
4
解决办法
2万
查看次数

使用.htaccess强制SSL和WWW

我想知道.htaccess在URL中强制SSL和WWW的代码是否正确,因为使用其他代码我通常会获得重定向循环,例如RewriteCond %{HTTPS} !=on现在它就像魅力一样(可疑).还有,可以写得更好/更简单吗?

# Force to SSL
RewriteCond %{HTTP:HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

# Force to WWW
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]  
Run Code Online (Sandbox Code Playgroud)

.htaccess ssl https web

27
推荐指数
3
解决办法
4万
查看次数

DjangoCMS:通过http禁用登录,强制https

我们的DjangoCMS站点可通过http和https访问.

通过http匿名使用是可以的.但我想通过http禁用登录.

有没有办法在用户想要登录时强制使用https?

甚至登录页面(带有用户名和密码字段)也不应该通过http提供.

背景:我不希望密码通过未加密的电线.

更新:该站点托管在Apache Web服务器上.

django https django-cms

14
推荐指数
1
解决办法
785
查看次数

强制https:// www.对于使用mod_rewrite的htaccess中的Codeigniter

我正在使用Codeigniter并按照这些说明强制ssl,但所有请求都被重定向到

http://staging.example.com/index.php/https:/staging.example.com
Run Code Online (Sandbox Code Playgroud)

.htaccess是:

### Canonicalize codeigniter URLs

# Enforce SSL https://www. 
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

###
# Removes access to the system folder by users.
# Additionally this will allow you to create a System.php controller,
# previously this would not have been possible.
# 'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]

# Checks to see if the user is attempting to …
Run Code Online (Sandbox Code Playgroud)

php .htaccess mod-rewrite codeigniter

13
推荐指数
3
解决办法
4万
查看次数

Laravel:如何强制HTTPS?

我开始开发一个新的大应用程序,这次我正在使用Laravel,这是第一次.

我需要为所有页面强制使用HTTPS,但是从代码或.htaccess开始,这并不重要,但我找不到简单的教程.

官方文档不谈这个问题.

有关信息,我的实际.htaccess是

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

我的问题是针对Laravel 5的,因为我不知道修改这个.htaccess文件的位置和方式.而且我也问你这是否是Laravel的正确方法,或者Laravel是否有特定的设置来处理HTTP.

因此,请不要关闭我的问题,并尝试更加坚持Laravel特定主题.

如果您可以发布一种简单的方法来修改此文件和/或要在Laravel配置中修改哪些内容以正确处理https.

但简而言之,是的,我想强制每个呼叫在HTTPS上传输.

.htaccess mod-rewrite https laravel laravel-5.4

11
推荐指数
3
解决办法
2万
查看次数

我有什么代码才能使用HTTPS?

在标准的"宣传册"网站中,我有一个子系统,其中私人数据在一系列页面中来回传递.该网站现已完成,现在无需HTTPS.

有人能指出我需要做的步骤列表,在网站的安全部分实施HTTPS吗?

php https

10
推荐指数
3
解决办法
2万
查看次数

如何POST到HTTP?

假设我有一个表格,现在正在做一个帖子:

<form id="post-form" class="post-form" 
      action="/questions/ask/submit" method="post">
Run Code Online (Sandbox Code Playgroud)

您会注意到该网站中没有任何网站action,浏览器会跟随其中的网页.

发布时,浏览器遵循当前的域规则

If the current page is...                then the browser will POST to
=======================================  =============
http://stackoverflow.com/questions/ask   http://stackoverflow.com/questions/ask/submit
https://stackoverflow.com/questions/ask  https://stackoverflow.com/questions/ask/submit
Run Code Online (Sandbox Code Playgroud)

但我想确保浏览器始终转到安全页面:

http://stackoverflow.com/questions/ask   https://stackoverflow.com/questions/ask/submit
Run Code Online (Sandbox Code Playgroud)

通常你会尝试这样的事情:

<form id="post-form" class="post-form" 
      action="https://stackoverflow.com/questions/ask/submit" method="post">
Run Code Online (Sandbox Code Playgroud)

除此之外,需要知道托管站点的域名和虚拟路径名称(例如stackoverflow.com).如果网站被更改:

  • stackoverflow.net
  • stackoverflow.com/mobile
  • de.stackoverflow.com
  • stackoverflow.co.uk/fr
  • beta.stackoverflow.com

然后表格action也必须更新:

<form id="post-form" class="post-form" action="https://stackoverflow.net/questions/ask/submit" method="post">

<form id="post-form" class="post-form" action="https://stackoverflow.com/mobile/questions/ask/submit" method="post">

<form id="post-form" class="post-form" action="https://de.stackoverflow.com/questions/ask/submit" method="post">

<form id="post-form" class="post-form" action="https://stackoverflow.co.uk/fr/questions/ask/submit" method="post">

<form id="post-form" class="post-form" action="https://beta.stackoverflow.com/questions/ask/submit" method="post">
Run Code Online (Sandbox Code Playgroud)

如何指示浏览器转到页面https …

html google-chrome internet-explorer-9

10
推荐指数
1
解决办法
3万
查看次数

多个.htaccess文件中多个mod_rewrite规则的优先级是什么?

我知道[L]以下重写规则意味着它是"最后一个",但我不清楚范围是什么

例如,当有多个.htaccess文件时,有些文件[L]会被应用?

例:

root.com/subdirectory1/subdirectory2

  ^           ^            ^      
  |           |            |
  A           B            C
Run Code Online (Sandbox Code Playgroud)

如果每个目录中都有.htaccess文件...

  1. 他们会以什么顺序申请?
  2. 如果他们互相矛盾哪个优先?
  3. 他们是连续申请吗?第一个结果是否传递到下一个?
  4. 是否会在较早(或相同)的文件中匹配来自后来规则的RESULT?
  5. 如果[L]在早期文件中有其他文件被考虑?

apache .htaccess mod-rewrite url-rewriting

8
推荐指数
1
解决办法
3055
查看次数

使用.htaccess强制子域的SSL HTTPS

我有这个代码一般在网站上强制使用SSL:

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)

我从这里得到了什么

我希望它只适用于特定的子域.

例如,如果您要访问http://sub.domain.org它,则应重定向到https://sub.domain.org.

我有一种预感,我需要添加另一个RewriteCond,基本上说是被击中的域名是http://sub.domain.org,但我对如何编写此代码感到茫然.

我一直在寻找其他stackoverflow问题,例如:

强制域的HTTPS和WWW以及子域HTACESS的HTTPS

使用.htaccess和mod_rewrite强制SSL/https

和Apache文档:https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond

我有过这些尝试:

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^(reports\.)?uksacb\.org$ [NC]
RewriteRule ^.*$ https://%1%{REQUEST_URI} [R,L]
Run Code Online (Sandbox Code Playgroud)

在这个问题/答案中,有点颠倒了答案:

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} =reports.uksacb.org
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)

但是我仍然没有理解如何正确地做到这一点.

如果有人能够向我解释我做错了什么,我需要做些什么才能做到正确,如何调试他们的重写条件和规则以确保它正常工作我会非常感激.有时我认为我的浏览器正在缓存我写的规则,我的不同尝试没有任何影响!

我的整个.htaccess看起来像这样:

选项-MultiViews

RewriteEngine On

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule …
Run Code Online (Sandbox Code Playgroud)

php apache .htaccess mod-rewrite ssl

5
推荐指数
2
解决办法
1万
查看次数

在Typo3中启用SSL

嗨Typo3用户在那里,

我想知道Typo3是否有原生SSL支持.SSL证书已经安装在服务器上,但不知怎的,我无法弄清楚如何为所有页面启用SSL.有谁知道如何实现这一目标?

先感谢您

丹尼斯

ssl typo3 certificate

2
推荐指数
1
解决办法
4370
查看次数