michal-koval / laravel-seo
终极 Laravel SEO 包
dev-master
2016-08-09 12:19 UTC
Requires
- php: >=5.6.0
- illuminate/support: ~5
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-14 19:52:58 UTC
README
安装
运行以下命令并提供最新版本
composer require michal-koval/laravel-seo
或者
直接添加到 composer.json (require)
"michal-koval/laravel-seo": "dev-master"
config\app.php
'providers' => [ // another providers MichalKoval\SEO\SEOServiceProvider::class, ];
并且
'aliases' => [ // another aliases 'SEO' => MichalKoval\SEO\SEOFacade::class ];
如果安装成功,您可以尝试它是否工作。
文档
元关键词
在您的控制器中,您可以设置关键词、描述或其他自定义元标签
namespace App\Http\Controllers; use SEO; class HomeController extends Controller { public function index() { SEO::setKeywords("foo, bar, foobar"); } }
在模板中
{!! SEO::getKeywords() !!} {{# result is <meta name="keywords" content="foo, bar, foobar" /> #}}
您可以使用相同的命令附加关键词
SEO::setKeywords("append, to, the, keywords"); {{# result in template is <meta name="keywords" content="foo, bar, foobar, append, to, the, keywords" /> #}}
站点地图
该工具可以即时生成站点地图,无需文件
routes.php
Route::get("/sitemap.xml", function() { $seo = App::make("seo"); $seo->setURL("http://example.com"); $seo->addItem("/home"); $seo->addItem("/some", '+1 day'); $seo->addItem("/blue"); $output = $seo->render(); return (new Response($output))->header("Content-type", "text/xml"); })->name('sitemap');
输出是
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://example.com/home</loc> <lastmod>2016-07-31</lastmod> <priority>0.5</priority> <changefreq>weekly</changefreq> </url> <url> <loc>http://example.com/some</loc> <lastmod>2016-08-01</lastmod> <priority>0.5</priority> <changefreq>weekly</changefreq> </url> <url> <loc>http://example.com/blue</loc> <lastmod>2016-07-31</lastmod> <priority>0.5</priority> <changefreq>weekly</changefreq> </url> </urlset>
站点地图索引
再次 routes.php
Route::get("/sitemap-index.xml", function() { $seo = App::make("seo"); $seo->setPath(route("sitemap")); $output = $seo->renderIndex(); return (new Response($output))->header("Content-type", "text/xml"); });
输出是
<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap> <loc>http://example.com/public/sitemap.xml</loc> <lastmod>2016-07-31T03:42:38+00:00</lastmod> </sitemap> </sitemapindex>
robots.txt
Route::get("/robots.txt", function() { $seo = App::make("seo"); $seo->addUserAgent(); $seo->addDisallow("/assets"); $seo->addSitemap(route("sitemap")); $seo->addNoIndex("/path"); $output = $seo->getRobot(); return (new Response($output))->header("Content-type", "text/plain"); });
并输出神奇的结果
Sitemap: http://example.com/public/sitemap.xml
User-agent: *
Disallow: /assets
No-Index: /path
完整命令列表
/** * @param string $canonical */ public function setCanonical($canonical); /** * <link rel="canonical" href="http://example.com/" /> * @return string */ public function getCanonical (); /** * @param $name * @param null $value * @param string $type * @return mixed */ public function addMeta($name, $value = null, $type = "content"); /** * <meta name="robots" content="FOLLOW, INDEX" /> * @return string */ public function enableRobots(); /** * <meta name="robots" content="NOFOLLOW, NOINDEX" /> * @return string */ public function disableRobots(); /** * <meta ... /> * @return string */ public function getMeta(); /** * Return OpenGraph params (Social) * <meta property="og:image" /> * <meta property="og:url" /> * ... * @param string $site_name * @param string $title * @param string $desc * @param string $type * @param string $image * @param string $link * @return mixed */ public function getFacebookTags($site_name = "", $title = "", $desc = "", $type = "website", $image = "", $link = ""); /** * <meta name="description" content="..." /> * @return string */ public function getDescription(); /** * @param string $desc */ public function setDescription($desc); /** * <meta name="keywords" content="..." /> * @return mixed */ public function getKeywords(); /** * @param string|null $keywords */ public function setKeywords($keywords = null); /** * @param string $url */ public function setURL($url); /** * @param string $path */ public function setPath($path); /** * @param $location * @param string|null $lastmod * @param float|string|null $priority * @param integer|string|null $changeFreq */ public function addItem($location, $lastmod = null, $priority = null, $changeFreq = null); /** * Return XML Formated Sitemap * @return string */ public function render(); /** * Return XML Formated Sitemap Index * @return string */ public function renderIndex(); /** * @param null $agent */ public function addUserAgent($agent = null); /** * @param null $path */ public function addDisallow($path = null); /** * @param null $sitemap */ public function addSitemap($sitemap = null); /** * @param null $noIndex */ public function addNoIndex($noIndex = null); /** * Return robots.txt formatted string * @return string */ public function getRobot();