【问题标题】:Best way to force WWW with PHP and not HTACCESS使用 PHP 而不是 HTACCESS 强制 WWW 的最佳方法
【发布时间】:2014-06-16 05:50:03
【问题描述】:

我正在尝试强制使用 WWW。进入我的域名,但通过使用 PHP 与 HTACCESS,如下所示。用 PHP 和 HTACCESS 做这件事有什么问题吗? 有没有人有任何关于如何在最好的庄园中进行设置的代码?

#for all requests on mydomain.com
RewriteCond %{HTTP_HOST} mydomain\.ca$ [NC]
#if they are not for the www.mydomain.com
RewriteCond %{HTTP_HOST} !^www\.mydomain\.ca$ [NC]
#301 redirect to www.mydomain.com
RewriteRule (.*) http://www.mydomain.ca/$1 [R=301,L]

【问题讨论】:

    标签: php apache .htaccess mod-rewrite redirect


    【解决方案1】:

    为了在您的网址中强制执行 www,如果可能,.htaccess 应该是您的选择。它会给你更好的表现!!无论如何,如果你真的想为此使用 php 代码,你可以使用以下代码 sn-p:

    if ((strpos($_SERVER['HTTP_HOST'], 'www.') === false))
    {
        header('Location: http://www.'.$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
        exit();
    }
    

    对于更通用的.htaccess 重定向代码将是

    RewriteCond %{HTTP_HOST} !^$
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTPS}s ^on(s)|
    RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    

    这是参考

    1. htaccess
    2. PHP redirect

    【讨论】:

    • 这正是我想要的。 HTACCESS Generic,效果更好……谢谢。
    【解决方案2】:

    这是你想要的吗?

    $domain= $_SERVER["SERVER_NAME"];
    $uri=$_SERVER["REQUEST_URI"]; 
    if($domain == "example.com"){
        header("Location: www.example.com$uri");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多