2014-11-05 40 views
4

如何將URL從www.myapp.co重定向到myapp.co?而且如果URL有其他參數,如www.myapp.co/other-parameter將被重定向到myapp.co/other-parameter,其中other-parameter可以是任何東西。對於這個noob問題抱歉,我還在使用Laravel一週。使用URL參數將www重定向到非Laravel的www

順便說一句,我使用動態子域名,所以我只需要重定向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; 
    }); 

}); 
+0

可能重複[重定向非www到www英寸htaccess](http://stackoverflow.com/questions/12050590/redirect-non-www-to-www-in-htaccess) – Bogdan 2014-11-05 09:59:06

回答

9

也許您可以在公用文件夾中使用.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這裏我測試,如果主機不是本地主機併發出重定向到www之前不是子域(形式abc.xyz.tldn)。 我在多個項目中使用這種代碼,但沒有測試過它。我希望它能開箱即用。

編輯: 另一種方式來做到這一點無需複雜的模式匹配的描述如下: Redirect non www to wwww in htaccess 但這種方法需要你硬編碼的htaccess裏面你的域名。 (可能會或可能不會根據您的設置有問題)

+0

謝謝,它的工作原理。但我有一個問題。當我嘗試'test1.myapp.co'時,我被重定向到'www.test1.myapp.co',這是我不想要的。我只希望它成爲'test1.myapp.co'。 – 2014-11-05 10:12:36

+0

順便說一句,它適用於Firefox。也許我需要在Chrome中刪除緩存。 – 2014-11-05 10:15:37

11

如果你真的想要把您的問題以編程我認爲最好的辦法是到下一個代碼添加到您的filters.php:

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」的相同路徑。

+0

我不得不在代碼中進行重定向,這非常完美! – Patrick 2014-12-17 02:33:58

-2

重定向WWW非WWW網址

今天,我們學習如何WWW網址重定向到非WWW網址

現在,這個網站開通兩個www和非WWW

步驟,從WWW重定向到使用.htaccess文件非WWW網址

  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. 檢查住
1

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]