我在Godaddy托管了一个网站,可以通过https和http访问。我在conf.php上全局声明了一个BASE_PATH变量为:
define('BASE_URL','//theventuregame.com');
我在我的网站上几乎到处都使用这个BASE_URL变量。。问题是当人们访问它时使用http://theventuregame.com或https://theventuregame.com一切都很好。。但当他们尝试键入重定向到的www.theventuregame.com时https://www.theventuregame.com并且BASE_ PATH与URL不同并且产生问题。
如何使我的BASE_PATH在人们访问页面时始终相同???我正在使用这个进入httaccess:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
总是将网站重定向到https,这样我就可以将BASE_PATH设置为:
define('BASE_URL','https://www.theventuregame.com');
但有些人直接进入名为theventuregame.com的网站,这会将他们重定向到https://theventuregame.com我的BASE_PATH又不一样了。。
我希望我的问题很清楚。。
Thanx
您可以使用PHP $_SERVER
变量来确定网站的基本URL。
对于我的网站,我使用这个字符串:
$siteRootUrl = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST']."/";
这将使用$_SERVER['HTTP_HOST']
设置协议和主机,然后连接到根URL字符串中。
这样的字符串可能会对您有所帮助,然后您可以调用define('BASE_URL', $siteRootUrl);
,并在整个站点范围内使用它。那么,人们是通过HTTP还是HTTPS访问你的网站,或者是否使用www.都无关紧要。
请在此处查看有关PHP $_SERVER
superglobal的更多信息。
顺便说一句,如果你运行HTTPS,那么最好继续强迫人们使用HTTPS来保持安全。