【问题标题】:Have dashes rather than underscores in URL's in Laravel在 Laravel 的 URL 中使用破折号而不是下划线
【发布时间】:2012-12-21 04:24:30
【问题描述】:

我真的很想能够使用 Laravel (3) 并将破折号作为 url 分隔符而不是下划线。

我希望能够自动执行此操作,而不必为every_single_page 定义新路由。

我不知道如何实现这一点,并确保 Laravel 同时正常工作。

任何帮助将不胜感激!

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您可以尝试用 .htaccess 文件替换 - by _。

    【讨论】:

    • 但是,如果我在我的 site.com/i-am-great 应用程序中创建一个 url,如果我使用 .htaccess,那会转到默认控制器方法中的 i_am_great 方法吗?
    • 你需要弄清楚你需要使用什么 RewriteRule,但我认为使用 .htaccess 是可能的
    • 好吧,我至少会试一试,而不是在这里理论:)
    • 好的,如果可行,请发布您的答案,以便您可以帮助该功能中的任何人。
    • 好的,我已经用 .htaccess 规则尝试过这个,但这不起作用。考虑一下,我认为这根本无法使用 .htaccess,我认为它需要在 Laravel 路由级别完成。我正在使用这个 RewriteRule ^([^_]*)_([^_]*_.*) $1-$2 [N] RewriteRule ^([^_]*)_([^_]*)$ /$1 -$2 [L,R=301]
    【解决方案2】:

    只需使用:

    return Str::slug('My First Blog Post!');
    

    它会回显一个链接,如 mypage/my-first-blog-post

    你也可以更精确:

    return Str::slug('My First Blog Post!', '_');
    

    会给mypage/my_first_blog_post

    【讨论】:

      【解决方案3】:

      我已经为 3.x 分支创建了 pull request 来解决这个问题。

      您可以同时使用框架的 3.x 分支的 patchmy still-supported fork

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-12
        • 1970-01-01
        • 2021-11-26
        • 1970-01-01
        • 2011-02-14
        • 1970-01-01
        • 2013-03-22
        相关资源
        最近更新 更多