我想使用子域作为 id,并且我需要动态路由器来执行此操作。在网址管理器,我添加了这一行:
"http://<user:\w+>.local.dev/<controller:\w+>/<action>" => '<controller>/<action>',
当我尝试任何操作时,例如:
function actionMyAccount($user){
echo $user;...
}
我没有得到任何东西 - var 没有打印,并且脚本停止工作(屏幕为白色)。当我删除 $user 时,页面加载没有任何问题
如何实现子域路由器?
我认为你的路由器映射设置没问题。如果你想让它更精确:
"http://<user:[^www]\w+>.local.dev/<controller:\w+>/<action:\w+>" => '<controller>/<action>'
但要使其正常工作,您最好仔细检查以下两件事:
首先,你的虚拟主机应该有一个*.local.dev
-
server_name
in nginx
- or
ServerAlias
in Apache
然后您可以使用动态控制器的名称作为子域。
其次,你的虚拟主机应该已经配置好了rewrite
规则正确,参考Yii2 doc.
例如为了Apache
,只需创建一个.htaccess
文件下YOUR_APP/web/
包含以下内容行的文件夹:
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)