【发布时间】:2016-02-17 11:10:30
【问题描述】:
我在 Kohana 3 中隐藏部分 url 时遇到问题。
在 admin 子文件夹中存储了控制器。 这些控制器为站点的管理面板供电。 所以当我输入:
http://mysite.xyz/admin
它工作正常。我只需要那个kohana项目的管理面板,我决定创建子域admin。
所以现在当我输入时:
http://admin.mysite.xyz/admin
它工作正常。
但我想隐藏 url 的 admin 部分以及何时输入:
http://admin.mysite.xyz
我不会加载 kohana 网站,而是加载管理面板。
这是我的 .htaccess:
RewriteEngine On
RewriteBase /
###### Add trailing slash (optional) ######
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [L,R=301,NE]
RewriteCond %{REQUEST_METHOD} !POST
RewriteRule ^(.*)index.php/(.*)$ /$1$2 [R=301,L,NE]
RewriteCond $1 ^(index\.php|robots\.txt|favicon\.ico|media)
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?kohana_uri=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^(www.)?admin.schoener-tauchen.pl$
RewriteRule ^(/)?$ admin [L]
RewriteRule ^admin/(.+)$ $1 [L,NC,R]
它不起作用。它给出了 404 错误。
有人可以帮忙吗?
PS.不幸的是,在这种情况下,更改 Kohana 路由非常复杂。 Htaccess 更改似乎更容易。
编辑
bootstrap.php 路由:
Route::set('admin', 'admin(/<controller>(,<action>(,<id>)(,<id2>)(,<id3>)))')
->defaults(array(
'directory' => 'admin',
'controller' => 'home',
'action' => 'index',
));
Route::set('default', '(<controller>(,<action>(,<id>)))', array('controller'=>'\w+','controller'=>'\w+', 'action'=>'\w+', 'param' => '.+'))
->defaults(array(
'directory' => 'admin',
'controller' => 'home',
'action' => 'index',
));
【问题讨论】:
-
更新您的默认路由以使用管理控制器。
-
我该怎么做?我不是 kohana 程序员,也没有创建那个网站。我应该附上一些代码吗?
-
检查 bootstrap.php,如果你可以通过 Route::set('default' 代码在这里我可以提供帮助。
-
将默认路由移到管理员路由之前..
-
您也可以阅读此页面以供参考。 kohanaframework.org/3.3/guide/kohana/routing
标签: .htaccess redirect kohana kohana-3