这是我遇到问题的My Laravel-5.4代码。我创建了测试laravel项目,有两页 home & 关于我们并使用Apache v-host(www.test.com)来映射文件路径 当我点击 www.test.com 时,它会正确加载到索引页面,但当我尝试点击 www.test.com/about 它显示404错误。但是,当我点击这样的网址 www.test.com/index.php/about 页面正确加载 我不知道它的问题出在我的代码或Apache配置或任何其他
中控制器:
// Home Page
Route::get('/','pagesController@index');
// About Us Page
Route::get('/about','pagesController@about');
路线:
ServerAdmin webmaster@localhost
ServerName test.com
ServerAlias www.test.com
DocumentRoot /var/www/html/test/public/
Apache conf:
<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>
的.htaccess
new Vue({
framework7: {
root: '#app',
routes: Routes,
pushState: true,
cache: false,
},
// ...
答案 0 :(得分:3)
你可能有一个未启用mod_rewrite的问题。
尝试使用a2enmod rewrite
启用它,然后重新启动apache /etc/init.d/apache2 restart
看看answer。
或强>
如果它不起作用。
这可能来自Apache conf:etc/apache2/httpd.conf
。
这个article会比我更好地解释它。
您可能需要修改:
<Directory "/var/www/html">
...
AllowOverride None
...
</Directory>
要
<Directory "/var/www/html">
...
AllowOverride All
...
</Directory>
然后重新启动apache /etc/init.d/apache2 restart
或强>
如果仍然无法正常工作,请尝试在Laravel的项目中执行chmod 0755
。
答案 1 :(得分:1)
你是否在apache上安装并启用了mod_rewrite?
要使用mod_rewrite
,您可以在终端中键入以下命令:
a2enmod rewrite
在
之后重启apache2/etc/init.d/apache2 restart
或
service apache2 restart
这是我.htaccess
目录中的public/
:
<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]
另外,编辑/etc/apache2/sites-enabled/000-default
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>