如何将我的网站url从http://自动更改为http://www.在浏览器地址栏中


how to auto change my site url from http:// to http://www. in browser address bar

在我的constants.php文件中,我设置了站点根。

 define("SITEROOT","http://www.example.com/");

请参阅http://和http://www.在以下描述中。

现在session_start仅在我从移动时有效http://www.example.com/index.php到任何其他页面。但是如果我使用http://example.com并尝试用在其他页面上回显会话详细信息http://www.example.com/pagename.php,会话不会继续。

是否有任何方法可以将浏览器地址栏中的url自动更正为http://www.example.com如果用户使用http://example.com

您可以使用web服务器强制使用www或非www URL。强烈建议在实时网站上使用其中一个(不允许同时使用两个)进行搜索索引。

如果你使用的是Apache,你可以更新你的网站.htaccess文件,如下所示,网址没有WWW

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www'.(.*)$ [NC]
RewriteRule .* http://%1%{REQUEST_URI} [R=301,L]

更新

正如Vinny在评论中指出的那样,建议在可能的情况下NOT使用.htaccess,而是在虚拟主机配置文件中处理它。

如果您正在使用apache,请将其添加到您的配置中。

<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / http://www.example.com/
</VirtualHost>

您应该能够使用这样的东西(在显示任何内容或发送标头之前,所以在会话创建代码之前):

if( "www." != substr( $_SERVER["SERVER_NAME"], 0, 4 ) ){
    header( "Location: http://www.example.com".$_SERVER["REQUEST_URI"] );
    exit();
}

或者,您可以创建/修改.htaccess文件,如下所示:

Rewritecond %{HTTP_HOST} !www.domain.com
RewriteRule ^/(.*)$ http://www.domain.com/$1 [R=301]

或者

RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^/(.*)$ http://www.%{HTTP_HOST}/$1 [R=301]