我最近将我的应用程序从 Windows localhost 迁移到了 linux 主机。
我的问题是我无法访问控制器,我总是不断收到消息:找不到文件。(来自网络服务器)
这很奇怪,因为相同的代码库正在我的本地主机上运行。
引导程序.php:
Route::set('default', '(<controller>(/<action>(/<id>)(/<param1>)(/<param2>)))')
->defaults(array(
'controller' => 'user',
'action' => 'index',
'param1' =>'',
'param2' =>'',
));
.ht 访问:
# Turn on URL rewriting
RewriteEngine On
# Installation directory
RewriteBase /
# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]
这里发生的奇怪的事情是,如果我去:www.myapp.com/ 然后默认控制器执行并找到用户/索引函数。
但是,如果我手动将其写为 www.myapp.com/user/index,我会不断收到 File not found 消息。
我已经尝试用小写重命名控制器文件,所以我想这不是问题,如果那会是问题,那么默认路由首先不会找到它,对吧?
例如,如果我在默认路由中写入:
Route::set('default', '(<controller>(/<action>(/<id>)(/<param1>)(/<param2>)))')
->defaults(array(
'controller' => 'user',
'action' => 'login',
'param1' =>'',
'param2' =>'',
));
我访问 www.myapp.com ,它会加载用户功能。我不知道这里出了什么问题,为什么当我写 myapp.com/user/login 时它说找不到文件,但是如果我把它作为默认路由它会打开它。