使用https或http访问页面时,我的basepath无法正常工作


my base_path not working properly when accessing page with https or http

我在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来保持安全。