我正在制作一个链接到控制器的功能驻留在名为'Admin'的控制器目录的子目录中。当我在菜单栏中使用以下代码创建链接时:
{!! HTML::link('/admin', 'Admin') !!} // www.property.com/admin
它不起作用,但是如果我在'/admin'前面加上'index.php/admin',像这样:
{!! HTML::link('index.php/admin', 'Admin') !!} // www.property.com/index.php/admin
可以正常工作。有什么问题吗?我怎样才能摆脱添加'index.php'之前我的每个链接像'admini'?注意我在Ubuntu 15.04上使用名为'www.property.com'的虚拟主机。这是我的AdminController' ' '
<?php
namespace App'Http'Controllers'Admin;
use Illuminate'Http'Request;
use App'Http'Requests;
use App'Http'Controllers'Controller;
class AdminController extends Controller
{
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
return view('admin.index');
}
?>
这是我的路由文件
Route::resource('/', 'HomeController');
Route::resource('/admin', 'Admin'AdminController');
下面是.htaccess文件的代码:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
下面是虚拟主机文件代码:
<VirtualHost *:80>
ServerAdmin m.khuramj@live.com
ServerName laravelproperty.com
ServerAlias www.laravelproperty.com
DocumentRoot /var/www/property-project/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
如果您使用的是Apache,请确保公用文件夹中的.htaccess在那里。
如果不是这样,在公共文件夹中创建一个.htaccess,内容如下:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
如果仍然不工作,请确保Apache中的mod_rewrite模块是启用的:)。
花了几个小时后,我找到了这个问题的解决方案。虽然是一个矿工,但花了很多时间。
在我的虚拟主机文件中添加如下代码:
<Directory /var/www/property-project/public/>
AllowOverride All
</Directory>
你可以比较这个和上面问题中给出的虚拟主机代码的区别。
<VirtualHost *:80>
ServerAdmin m.khuramj@live.com
ServerName laravelproperty.com
ServerAlias www.laravelproperty.com
DocumentRoot /var/www/property-project/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/property-project/public/>
AllowOverride All
</Directory>
</VirtualHost>