对于SEO,我需要以大写或小写的形式创建URL。
例如(原始网址):
https://example.com/CATEGORY/product
如果用户运行此网址:
https://example.com/category/product or https://example.com/CATEGORY/PRODUCT
转换为:
https://example.com/CATEGORY/product
如何在web.php
中创建此网址?
答案 0 :(得分:1)
如果我正确理解了您的特定问题,则希望将用户重定向到 https://example.com/CATEGORY/product 如果它们击中包含相同字符但使用不同大写字母的网址,例如 https://example.com/category/product
可以通过在@Chris答案中的路由中添加重定向逻辑来处理这种重定向。
Route::get('{category}/{product}', function($category, $product)
{
if(strtoupper($category) != $category || strtolower($product) != $product) {
return redirect(strtoupper($category).'/'.strtolower($product));
}
$product = Product::where('product_title', strtolower($product))
->and('category', strtolower($category))
->get();
return $product;
});
Laravel默认返回302代码,指示临时重定向。这是因为意外发送一个临时重定向比意外发送一个永久重定向好得多。在这种情况下,听起来您可能想使其永久化,因此请将返回代码添加到您的重定向调用中。
return redirect(strtoupper($category).'/'.strtolower($product), 301);
这样,他们的浏览器就会记住始终要选择的路线。它还将指示搜索引擎索引正确的网址。
与Apache不同,Nginx网址区分大小写。这是为了提高性能。 Laravel路由也区分大小写。因此,如果使用Laravel + Nginx堆栈,则必须在所有路由中考虑大小写。您可以在Nginx配置中处理重定向,但是在这种情况下,在http://example.com/ / 上进行匹配可以轻松捕获您不想要的URL。
答案 1 :(得分:0)
这样的事情会起作用(我正在假设你使用的类别和产品参数是什么。
my $ssh = Net::OpenSSH->new($remote_addr);
my $outstr = $ssh->capture('sed', '-n', "/$last_hour/,\$p", "$dir/$remote_file");
关键点: