我将所有laravel 5.5
应用上传到我的共享服务器(www.example.com/laravel/)文件夹。现在,当我转到www.example.com/laravel
时,它将启动我的应用程序。但我有2个路线问题:
<a href="{{ url('about') }}">AboutUs</a>
它将转到www.example.com/laravel/about
,结果可以理解为Not Found
,因为在我的web.php
我的路线是:
Route::get('/about', 'HomeController@about')->name('about');
我甚至改为
Route::get('laravel/about', 'HomeController@about')->name('about');
它仍然无效。我该如何解决这个问题?
public
文件夹中仍有/laravel/
个文件夹。要使所有css和js文件链接,我必须改变:
到
<link href="{{ asset('public/css/app.css') }}" rel="stylesheet">
让它发挥作用。有没有重新配置?
我可以硬编码以使它们工作。但这将严重影响我不断的开发和更新过程。我正在寻找一种方法来设置它,无需在开发和生产之间进行更改。
Update01
我尝试了@ ben的建议并更改.htaccess
文件夹中的public
:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteBase /laravel //<-----this is what I add!
RewriteRule ^ index.php [L]
</IfModule>
但似乎没有任何效果。我对.htaccess
很新,所以我不确定我在那里做什么。还有更多见解吗?