【发布时间】:2015-07-30 09:12:08
【问题描述】:
我正在创建一个指向控制器功能的链接,该链接位于名为“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”的虚拟主机。 这是我的管理员控制器 ```
<?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 配置中加载 mod_rewrite 模块?
标签: php laravel laravel-5.1