使用URL参数在Laravel中将www重定向到非www


Redirect www to non-www in Laravel with URL parameters

如何将URL从www.myapp.co重定向到myapp.co?此外,如果URL具有其他参数,如www.myapp.co/other-parameter,则将重定向到myapp.co/other-parameter,其中other-parameter可以是任何值。很抱歉这个问题,我还在使用Laravel一周。

顺便说一句,我使用的是动态子域,所以我只需要将www重定向到非www,而不需要其他子域。

Route::group(array('domain' => 'myapp.co'), function() {
    Route::get('/', function() {
        return 'Hello! Welcome to main page...';
    });
    Route::get('/login', function() {
        return 'Login';
    });
    Route::get('/signup', function() {
        return 'Signup';
    });
});
Route::group(array('domain' => '{account}.myapp.co'), function() {
    Route::get('/', function($account) {
        if ($account == 'www') {
            return Redirect::to('http://myapp.co');
        }
        return $account;
    });
});

如果你真的想以编程方式处理你的问题,我认为最好的解决方案是将下一个代码添加到你的过滤器中。hp:

App::before(function($request){
   //Remove the 'www.' from all domains
   if (substr($request->header('host'), 0, 4) === 'www.') {
      $request->headers->set('host', 'myapp.co');
      return Redirect::to($request->path());
   }
});

基本上,我只是创建一个过滤器来检查请求是否以"www."开头在这种情况下,将客户端重定向到没有"www."的相同路径。

也许您可以在公用文件夹中使用.htaccess来执行重定向。

这里有一个:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !localhost
    RewriteCond %{HTTP_HOST} !^(.+)'.(.+)'.(.+)
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
</IfModule>

Basicaly在这里,我测试主机是否不是localhost,也不是子域(形式为abc.xyz.tldn),然后再重定向到www。我在多个项目中使用了这种代码,但还没有测试过。我希望它能开箱即用。

编辑:这里描述了另一种不用复杂模式匹配的方法:在htaccess中将非www重定向到wwww但这个解决方案需要你在htaccess中对域名进行硬编码。(可能是问题,也可能不是问题,取决于您的设置)

将以下代码添加到.htaccess文件中:

RewriteCond %{HTTP_HOST} ^www'.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

从http://stackoverflow.com/a/4958847/1078583如果这不起作用,那是因为你正在使用nginx

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

.htaccess

 RewriteEngine On
 RewriteCond %{HTTP_HOST} ^www.url'.com$ [NC]
 RewriteRule ^(.*)$ https://url.com/$1 [R=301,L]

将www重定向到非www URL

今天我们学习如何将www网址重定向到非www网址

现在这个网站同时开放www和非www

使用.htaccess文件从www重定向到非www URL的步骤

  1. 转到文件zila
  2. 选择您的网站
  3. 打开.htaccess文件
  4. 将以下代码复制到.htaccess文件

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www'.example'.com [NC]
    RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
    
  5. 将示例替换为您的域名

  6. 将其粘贴到.htaccess文件
  7. 实时查看