那里我刚刚在 laravel 5.2 中创建了一个新项目。然后我成功地从 Windows 中的项目网址中删除了public/index.php
它工作正常。但是当我在 var/www/html 中复制了 ubuntu 中的相同项目时,/var/www/html/myproject
.并启用了 apache2 rewrite_mode。但是如果不在 url 中放置索引.php,它就不起作用。它仅在没有公共的情况下工作。 http:://localhost/myproject/index.php/cms
(它工作正常)但是 http:://localhost/myproject/cms
(它不起作用)???.有什么建议吗????我的代码是
路线.php
define( "PREFIX", "cms" );
Route::get(PREFIX . '/login', 'Auth'AuthController@getLogin');
它很好我也已经将所有文件从公用文件夹剪切到根目录并编辑索引.php文件
require __DIR__.'/../bootstrap/autoload.php';
由
require __DIR__.'/bootstrap/autoload.php';
和
$app = require_once __DIR__.'/../bootstrap/app.php';
由
$app = require_once __DIR__.'/bootstrap/app.php';
.htaccess as
<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]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
我遇到了这个问题,并在 http://laravel.io 上提出了一个解决方案。
在 Apache 2.4.7 上,apache2.conf 通过设置 AllowOverride None 设置为不允许 .htaccess 覆盖:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
您可以在 apache2.conf 中更改此设置,但不建议这样做。而是在站点的虚拟主机文件中执行此覆盖,即。网站可用/yoursite.com.conf. 像这样:
<Directory /var/www/html/yoursite.com/laravelappinstall/public/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
确保已启用重写模块,即 sudo a2enmod 重写。重新启动您的网络服务器,即。sudo service apache2 restart.
来源: http://laravel.io/forum/09-15-2015-removing-indexphp-from-url-laravel-5116
•转到主项目/公共项目>>
a. .htacess
b. favicon.ico
c. index.php
d. robots.txt
e. web.config
1.从公共文件夹中剪切这5个文件,然后粘贴到主项目文件夹上,这意味着公共文件夹的外侧...主项目/文件
2.粘贴后,打开索引.php修改
•require __DIR__.'/…/bootstrap/autoload.php'; to
•require __DIR__.'/bootstrap/autoload.php';
modify
$app = require_once DIR.'/../bootstrap/app.php'; to
$app = require_once DIR.'/bootstrap/app.php';