我有一個網站,可以在http
和https
協議中查看,這裏的問題是鏈接和資產必須反映網站正在瀏覽的協議。不包括協議的書寫鏈接
一個解決方案是使用相對鏈接,但由於特殊原因,我不能使用相對鏈接,作爲結果,我不得不尋找替代...
我最近了解到,你可以寫一個到現在爲止,我一直在使用以下
<a href="//www.example.net/test/">Test</a>
:
<?php
// Get the current protocol
$_PROTOCOL = $_SERVER['HTTPS']=='on' ? 'https://' : 'http://';
?>
<a href="<?php echo $_PROTOCOL; ?>www.example.net/test/">Test</a>
雖然第一溶液中以便像這樣的鏈接使用當前的協議作品,我最近才發現它並不熟悉它是如何工作的以及它是否可靠。我意識到,舊版瀏覽器可能不喜歡它,但這並不妨礙我,因爲它只是非常老的瀏覽器(顯然)。
當我想爲我的網站的一個站點地圖,網址是寫的很奇怪,像這樣:
http://beta.example.net///venue/
而不是
http://beta.example.net/venue/
這是爲什麼?這是因爲我使用的鏈接?
儘管需要大量的代碼,我的原始(PHP)解決方案是否更好?
最好使用「//example.net/test」。即使Google的CDN使用這種格式 - https://developers.google.com/speed/libraries/devguide#jquery,因此您可以確保它適用於所有瀏覽器 – skyronic
您的php解決方案有什麼問題?我只會改變'PROTOCOL'而不是變量,那麼你可以在你的站點的不同範圍內使用它''define(「PROTOCOL」,$ _ SERVER [「HTTPS」 ] ==「on」?「https」:「http」);' –
@YaronUliel我的PHP解決方案沒有問題,但HTML解決方案更簡單,所需代碼更少。我不想爲我的網站中的每個鏈接寫'echo $ _PROTOCOL'!關於使用常量的建議雖然很好,但是+1 :-) –