如何将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的步骤
- 转到文件zila
- 选择您的网站
- 打开.htaccess文件
-
将以下代码复制到.htaccess文件
RewriteEngine on RewriteCond %{HTTP_HOST} ^www'.example'.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
-
将示例替换为您的域名
- 将其粘贴到.htaccess文件
- 实时查看