我已经编写了一个小函数来建立当前的站点URL协议,但是我没有SSL,也不知道如何测试它是否在https下工作.Can you tell me if this is correct?

function siteURL()
{
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
    $domainName = $_SERVER['HTTP_HOST'].'/';
    return $protocol.$domainName;
}
define( 'SITE_URL', siteURL() );

Is it necessary to do it like above or can I just do it like?:

function siteURL()
{
    $protocol = 'http://';
    $domainName = $_SERVER['HTTP_HOST'].'/'
    return $protocol.$domainName;
}
define( 'SITE_URL', siteURL() );

在ssl下,即使锚标签url使用http,服务器也不会自动将url转换为https吗?有必要判断协议吗?

谢谢!

推荐答案

这不是自动的.你的顶层功能看起来不错.

Php相关问答推荐

PHP 8.3类型类常数-关闭

为什么PHP输出\n而不是实际创建一个新元素?

添加自定义Metabox到WooCommerce管理订单,启用HPOS

尽管包含目标日期,但日期范围比较仍有意外输出

允许Laravel路由指定`withTrashed`,尽管有显式的模型绑定

在特定日期之间使用特定的元密钥销售产品

Laravel 10 -扩展现有的artisan命令?

在WooCommerce产品中按类型对产品属性术语进行分类以供显示

获取并判断WooCommerce用户订阅结束日期

在WooCommerce中的本地收件发货方式下添加一个 Select 字段

移动应用:在PHP中忽略Cookie?

向WooCommerce管理订单总额添加自定义总额行

未检测到laravel控制器

如何更新 Laravel Eloquent 列强制转换为集合

如何在 Phpunit 的静态提供程序中创建测试双打?

当我激活插件时出现错误注意:未定义的偏移量:1

致命错误:未捕获 Google_Exception:客户端机密 JSON 文件无效.在 /somepath/lib/vendor/google/apiclient/src/Google/Client.php

Symfony:指定 data_class 时,提交的表单获取初始化前不得访问

正则表达式请帮我从内容中找到这个词

Docker: unixodbc.h 没有这样的文件或目录.已安装 unixodbc-dev 时出现pecl install sqlsrv错误