我的环境参照 http://www.fecshop.com/topic/398 教程配置了我的nginx,已经支持了无index.php访问,但是模板里使用
<?= Yii::$service->url->getUrl('/customer/account') ?>
生成的url,始终会有index.php,怎么才能去掉index.php,让生成出来的url没有index.php
你是fecshop,还是自己搭配的项目?
1.nginx的配置是,让没有index.php的url可以顺利访问,仅此而已,也就是一个url rewrite的过程
2.程序Yii::$service->url->getUrl('/customer/account')是yii2的url 字符串生成的过程
Yii::$service->url->getUrl('/customer/account')
需要配置yii2组件
'components' => [ 'urlManager' => [ 'class' => 'yii\web\UrlManager', 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [], ],
我记得是设置 showScriptName 为 false, 你试一下,fecshop默认都配置好了的。
showScriptName
false
3.如何还解决不了,自己debug一下代码找找原因
@Fecshop [#1楼](#comment1)
@common\config\main.php 代码如下:
return [ 'vendorPath' => dirname(dirname(__DIR__)).'/vendor', 'components' => [ 'urlManager' => [ 'class' => 'yii\web\UrlManager', 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [], ], 'assetManager' => [ 'forceCopy' => false, ], ], ];
我都配置好了,不是自己搭的,就是fecshop
明白了,是 @common\config\fecshop_local_services\Url.php 文件配置 showScriptName 为true了,
return [ 'url' => [ 'showScriptName'=> true, ..... ], ];
这样的话,,@common\config\main.php 的配置就没用了
@tgy3300 #3楼
嗯