我只有一个页面,我想强制作为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.我知道如果它实际上是一个有购物车等的页面,你会以不同的方式做到这一点.您可以将其视为一个网站,该网站以一个价格销售一件商品,您可以在其中输入您的信用卡信息,然后将其提交到外部网站上的支付网关,以便明确向您的卡收费一次.
我有一个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的最佳方法是什么?我已经尝试了一些我在这里找到的例子,但是当我尝试它时,我不断得到重定向循环或内部服务器错误.
谢谢你的帮助!
我想知道.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) 我们的DjangoCMS站点可通过http和https访问.
通过http匿名使用是可以的.但我想通过http禁用登录.
有没有办法在用户想要登录时强制使用https?
甚至登录页面(带有用户名和密码字段)也不应该通过http提供.
背景:我不希望密码通过未加密的电线.
更新:该站点托管在Apache Web服务器上.
我正在使用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) 我开始开发一个新的大应用程序,这次我正在使用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上传输.
在标准的"宣传册"网站中,我有一个子系统,其中私人数据在一系列页面中来回传递.该网站现已完成,现在无需HTTPS.
有人能指出我需要做的步骤列表,在网站的安全部分实施HTTPS吗?
假设我有一个表格,现在正在做一个帖子:
<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.netstackoverflow.com/mobile de.stackoverflow.comstackoverflow.co.uk/frbeta.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 …
我知道[L]以下重写规则意味着它是"最后一个",但我不清楚范围是什么
例如,当有多个.htaccess文件时,有些文件[L]会被应用?
例:
root.com/subdirectory1/subdirectory2
^ ^ ^
| | |
A B C
Run Code Online (Sandbox Code Playgroud)
如果每个目录中都有.htaccess文件...
[L]在早期文件中有其他文件被考虑?我有这个代码一般在网站上强制使用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) 嗨Typo3用户在那里,
我想知道Typo3是否有原生SSL支持.SSL证书已经安装在服务器上,但不知怎的,我无法弄清楚如何为所有页面启用SSL.有谁知道如何实现这一目标?
先感谢您
丹尼斯
https ×6
.htaccess ×5
mod-rewrite ×5
ssl ×5
php ×4
apache ×3
certificate ×1
codeigniter ×1
django ×1
django-cms ×1
html ×1
laravel ×1
laravel-5.4 ×1
redirect ×1
typo3 ×1
web ×1