怎么移除 laravel url 中的问号?

2014-10-23 17:57:40 +08:00
 zaishanfeng2014
laravel生成的url是
http://laravel.dev/index.php/home/welcome

可是只有这样
http://laravel.dev/index.php?/home/welcome
多个问号才能访问,怎么才能去掉问号?
5127 次点击
所在节点    问与答
5 条回复
holyghost
2014-10-23 18:18:57 +08:00
url rewrite 呀亲爱的
tabris17
2014-10-23 18:24:05 +08:00
一个是query string 一个是PATH_INFO
这个一般框架都是可以配置的吧
zaishanfeng2014
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
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
2014-10-24 07:32:26 +08:00
@holyghost 问题找到了,laravel 路由比较多样
——————————————————————
Route::get('home/test','HomeController@getTest');
这样明确指定路由,是可以rewrite成功的
——————————————————————
若未指定,则是按照默认的路由规则解析的,随意必须加query string

当然,laravel还有其他路由方式。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/141057

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX