我正在建立一个到控制器功能的链接,它位于名为' Admin'的Controller目录的子目录中。当我使用以下代码在菜单栏中建立链接时:
{!! 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&#39 ;? 注意我正在使用名为' www.property.com的虚拟主机'在Ubuntu 15.04上。 这是我的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>
答案 0 :(得分:0)
如果您使用的是Apache,请确保公共文件夹中的.htaccess存在。
如果不是这种情况,请在公共文件夹中使用以下内容创建.htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
如果它仍然无法正常工作,请确保启用Apache中的mod_rewrite模块:)。
答案 1 :(得分:0)
花了好几个小时后,我找到了解决这个问题的方法。虽然是一个矿工,但花了很多时间。
在我的虚拟主机文件中添加以下代码,如下所示:
<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>