从comain.com/category/slug到domain.com/category的Laravel URL

从comain.com/category/slug到domain.com/category的Laravel URL,laravel,url,seo,Laravel,Url,Seo,我寻找答案,但没有找到任何适合我的答案。 我有一个表'articles',在那里我存储带有'slug'列的文章 在我的路线文件中,我有以下路线: 路由::get('article/{slug}','ArticleController@viewArticle'); 当我输入例如/article/some-article-title和article-will-show时,这很好,但我想从/some-article-title访问。我试着改变路线,比如: 路由::get({slug},'Article

我寻找答案,但没有找到任何适合我的答案。 我有一个表'articles',在那里我存储带有'slug'列的文章

在我的路线文件中,我有以下路线:

路由::get('article/{slug}','ArticleController@viewArticle');

当我输入例如/article/some-article-title和article-will-show时,这很好,但我想从/some-article-title访问。我试着改变路线,比如:

路由::get({slug},'ArticleController@viewArticle');

当我把它放在文件的末尾时,它就起作用了,但毕竟,比如所见即所得现在起作用(上传文件),一些图像停止工作(404错误)。我尝试了modyfing.htaccess文件,但仍然无法工作

有什么想法吗

我想创建这样的锚

<a href="http://www.domain.com/some-title-for-article">some-title-for-article</a> 

请你试着给你的路线加上一个名字,并用路线名称来称呼它好吗

像这样:

Route::get({slug}','ArticleController@viewArticle')->name('view.article')

在您的Blade文件中,使用以下内容创建锚定:


请尝试在您的路线上附加一个名称,并用路线名称调用它好吗

像这样:

Route::get({slug}','ArticleController@viewArticle')->name('view.article')

在您的Blade文件中,使用以下内容创建锚定:


因为您没有使用路由名称,所以只需使用
url()
helper:

{{ url('some-title-for-article') }}

因为您没有使用路由名称,所以只需使用
url()
helper:

{{ url('some-title-for-article') }}


请把你的全部路线文件寄出去。您可能正在覆盖某些路由。请发布整个路由文件。您可能正在覆盖某些路由。谢谢,我使用它创建链接。但点击后会出现一个错误,因为路由或htaccess未配置为处理与URL构建无关的URL类型,这是web服务器问题。您需要为web服务器使用正确的配置。例如,您可以从中尝试配置。谢谢。我使用artisan内置服务器,从命令(php artisan serve)运行应用程序,并从官方文档中的composer安装它。一切都很好,我只想要像wordpress一样的URL,SEO友好,可以通过路由这样做,或者在htaccess中这样做更好?谢谢,我用它来创建链接。但点击后会出现一个错误,因为路由或htaccess未配置为处理与URL构建无关的URL类型,这是web服务器问题。您需要为web服务器使用正确的配置。例如,您可以从中尝试配置。谢谢。我使用artisan内置服务器,从命令(php artisan serve)运行应用程序,并从官方文档中的composer安装它。一切都很好,我只想要像wordpress一样的URL,SEO友好,可以通过路由这样做,或者在htaccess中这样做更好?谢谢你的回答,还是那个问题。我有这样的视图结构:/views-admin-article-layouts。。。例如,我尝试在我的视图/layout/master.blade.php中添加这一点,我添加了:
  • ,工作正常,它显示了我的视图/article/index.blade.php和文章内容,但现在图像无法加载,我的管理面板中的wysiwyg编辑器和文件上载也无法正常工作。请检查控制台是否有错误?如果某个东西没有加载,那么周围一定有一些错误,你能检查一下laravel日志吗?问题不是锚定路线没有显示出来。问题是-如何创建对搜索引擎优化友好的链接(而不是通过URL::to()等进行锚定)。我想创建所有链接(用于图库、帖子、文章等),如“帖子名称”示例中的链接。正如您所知道的,当您在路由文件的末尾添加类似于route::get({slug},'ArticleController@viewArticle'); 你可以完全匹配所有。所有系统工作正常,但我必须创建所有SEO友好的链接,而不是像/gallery/some title等。我认为wordpress会在数据库中为此类链接存储特殊的重写规则,并检查模式,然后重定向到controller/action。那么,没有这个就可以做到这一点吗?我不是100%确定你想要什么,因为你说有些资产不起作用,现在你想要有条件地路由到你的控制器。是的,您应该使用模式匹配,如果您深入研究wp代码,您可以检查它们的逻辑并实现类似的东西。谢谢您的回答,仍然是相同的问题。我有这样的视图结构:/views-admin-article-layouts。。。例如,我尝试在我的视图/layout/master.blade.php中添加这一点,我添加了:
  • ,工作正常,它显示了我的视图/article/index.blade.php和文章内容,但现在图像无法加载,我的管理面板中的wysiwyg编辑器和文件上载也无法正常工作。请检查控制台是否有错误?如果某个东西没有加载,那么周围一定有一些错误,你能检查一下laravel日志吗?问题不是锚定路线没有显示出来。问题是-如何创建对搜索引擎优化友好的链接(而不是通过URL::to()等进行锚定)。我想创建所有链接(用于图库、帖子、文章等),如“帖子名称”示例中的链接。正如您所知道的,当您在路由文件的末尾添加类似于route::get({slug},'ArticleController@viewArticle'); 你可以完全匹配所有。所有系统工作正常,但我必须创建所有SEO友好的链接,而不是像/gallery/some title等。我认为wordpress会在数据库中为此类链接存储特殊的重写规则,并检查模式,然后重定向到controller/action。那么,没有这个就可以做到这一点吗?我不是100%确定你想要什么,因为你说有些资产不起作用,现在你想要有条件地路由到你的控制器。是的,您应该使用模式匹配,如果深入研究wp代码,您可以检查它们的逻辑并实现类似的东西。
    {{ url('some-title-for-article') }}