为所有程序员做好准备!
前几天,我买了一个域+托管。我用Laravel 4.2.x做了一个本地项目,我想将它切换到我的在线服务器。我注意到我需要PHP版本5.5来运行这个版本的Laravel,所以我在.htaccess文件中更改了它。
现在一切似乎都是正确的,但喷射不正确。将链接(href)链接到其他页面将不起作用!每次我路由到没有'/'URI的URL时,我都会收到一个错误页面,说服务器找不到这个文件。
我的档案:
// routes.php
<?php
Route::controller('/', 'PageController');
//Route::get('/', 'PageController@getIndex');
//Route::get('/contact', 'PageController@getContact');
PageController.php
<?php
class PageController extends BaseController {
protected $layout = 'master.master';
public function getIndex() {
return View::make('pages.index');
}
public function getContact() {
return View::make('pages.contact');
}
}
我的观点:一切都是正确的,因为可以通过'/'URI访问联系页面,但我无法访问其他URI的页面。
提前致谢!
答案 0 :(得分:1)
您的代码很好,但路由区分大小写。因此http://example.com/Contact与http://example.com/contact
不同第一个(大写字母C)应该失败并显示“找不到控制器方法”错误。第二个(小写c)应该可以工作。
如果不是区分大小写问题,则您的.htaccess文件在您的网站托管服务商上不正确,丢失或不受支持。这是一个知道好的.htaccess文件的例子:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>