这是我遇到问题的 Laravel-5.4 代码。我创建了包含两个页面的测试 laravel 项目 home 和 about us 并使用 Apache v-host(www.test.com)
映射了文件路径
当我点击 www.test.com 时,它会正确加载到索引页面,但是当我尝试点击 www.test.com/about 它显示 404 错误。但是当我点击这个 url www.test.com/index.php/about 页面加载正常
我不知道它的问题出在我的代码或 Apache 配置或任何其他地方
Controller :
public function index(){
return view('pages.index');
}
public function about(){
return view('pages.about');
}
路线:
// Home Page
Route::get('/','pagesController@index');
// About Us Page
Route::get('/about','pagesController@about');
Apache 配置文件:
ServerAdmin webmaster@localhost
ServerName test.com
ServerAlias www.test.com
DocumentRoot /var/www/html/test/public/
.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]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
最佳答案
您可能遇到未启用的 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
。
关于php - .htaccess 设置 : Laravel Page redirect is not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45880934/