V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zaishanfeng2014
V2EX  ›  问与答

怎么移除 laravel url 中的问号?

  •  
  •   zaishanfeng2014 · 2014-10-23 17:57:40 +08:00 · 5289 次点击
    这是一个创建于 3721 天前的主题,其中的信息可能已经有所发展或是发生改变。
    laravel生成的url是
    http://laravel.dev/index.php/home/welcome

    可是只有这样
    http://laravel.dev/index.php?/home/welcome
    多个问号才能访问,怎么才能去掉问号?
    5 条回复    2014-10-24 07:32:26 +08:00
    holyghost
        1
    holyghost  
       2014-10-23 18:18:57 +08:00
    url rewrite 呀亲爱的
    tabris17
        2
    tabris17  
       2014-10-23 18:24:05 +08:00
    一个是query string 一个是PATH_INFO
    这个一般框架都是可以配置的吧
    zaishanfeng2014
        3
    zaishanfeng2014  
    OP
       2014-10-23 18:27:22 +08:00
    @holyghost
    问题是按照官方的说法,http://laravel.dev/index.php/home/welcome,是可以正常访问的,我试过rewrite,访问不了。

    我要达到的效果是这样的 http://laravel.dev/home/welcome
    ____________________________________
    RewriteEngine On

    RewriteRule ^(.*)/$ /$1 [L,R=301]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php? [L]
    ____________________________________

    这样不行。

    官方的是这样
    ——————————————————————
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
    ——————————————————————

    没有那个问号,如果http://laravel.dev/index.php/home/welcome 可以正常访问,官方的rewrite是可以正常工作的。

    php 版本 5.5.12 apache版本2.4.7
    holyghost
        4
    holyghost  
       2014-10-23 21:35:54 +08:00
    @zaishanfeng2014
    查了一下laravel没有自带的路由

    >> RewriteRule ^(.*)/$ /$1 [L,R=301]
    >> RewriteRule ^ index.php [L]
    表示带参数的301跳转 和 所有请求的query rewrite,相信你也都查过是什么意思了。
    第一条是没有用的,删掉吧

    http://www.lswebapps.com/code-snippet/laravel-htaccess-remove-index-php-url/
    参考下这里面的配置,不要漏掉任何一条
    zaishanfeng2014
        5
    zaishanfeng2014  
    OP
       2014-10-24 07:32:26 +08:00
    @holyghost 问题找到了,laravel 路由比较多样
    ——————————————————————
    Route::get('home/test','HomeController@getTest');
    这样明确指定路由,是可以rewrite成功的
    ——————————————————————
    若未指定,则是按照默认的路由规则解析的,随意必须加query string

    当然,laravel还有其他路由方式。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1002 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 21:41 · PVG 05:41 · LAX 13:41 · JFK 16:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.