如何将网址从www.myapp.co
重定向到myapp.co
?此外,如果网址中包含www.myapp.co/other-parameter
等其他参数,则会将其重定向到myapp.co/other-parameter
,其中other-parameter
可以是任何内容。对不起这个noob问题,我还在使用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;
});
});
答案 0 :(得分:12)
如果您真的想以编程方式处理问题我认为最好的解决方案是将下一个代码添加到您的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。'的相同路径。
答案 1 :(得分: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>
基本上我在这里测试主机是不是localhost而不是子域(形式为abc.xyz.tldn),然后再发送重定向到www。 我在多个项目中使用这种代码但是没有对它进行过测试。我希望它可以开箱即用。
编辑: 这里描述了另一种没有复杂模式匹配的方法: Redirect non www to wwww in htaccess 但是此解决方案要求您在htaccess中对您的域名进行硬编码。 (根据您的设置,可能是也可能不是问题)
答案 2 :(得分:2)
将以下代码添加到.htaccess
文件中:
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
答案 3 :(得分: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]
答案 4 :(得分:0)
.htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.url\.com$ [NC]
RewriteRule ^(.*)$ https://url.com/$1 [R=301,L]
答案 5 :(得分:-3)
将www重定向到非www网址
今天我们将学习如何将www网址重定向到非www网址
现在这个网站开通了www和非www
使用.htaccess文件从www重定向到非www网址的步骤
将以下代码复制到.htaccess文件
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
将示例替换为您的域名