[英]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 1 周。
顺便说一句,我使用的是动态子域,所以我只需要将 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;
});
});
如果您真的想以编程方式处理您的问题,我认为最好的解决方案是将下一个代码添加到您的 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.”的相同路径。
也许您可以使用 public 文件夹中的 .htaccess 来进行重定向。
这是一个:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !localhost
RewriteCond %{HTTP_HOST} !^(.+)\.(.+)\.(.+)
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
</IfModule>
基本上在这里,我在发出重定向到 www 之前测试主机是否不是本地主机而不是子域(形式 abc.xyz.tldn)。 我在多个项目中使用这种代码,但尚未对其进行测试。 我希望它能开箱即用。
编辑:这里描述了另一种无需复杂模式匹配的方法: 在 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 网址
今天我们学习如何将 www url 重定向到非 www url
现在这个网站对 www 和非 www 都开放
使用 .htaccess 文件从 www 重定向到非 www 网址的步骤
将以下代码复制到 .htaccess 文件
RewriteEngine on RewriteCond %{HTTP_HOST} ^www\\.example\\.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
用您的域名替换示例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.