我已将server.php文件重命名为index.php并添加了.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>
url现在工作正常,它没有网址,但是
asset()
public_path()
功能无法正常工作。 css,js,图像调用不正确。
{{ asset('assets/css/custom.css') }}
以上代码对所有custom.css都不起作用,之前它正常工作。 如果我添加公共而不是正常工作,但这不是正确的方法。
{{ asset('public/assets/css/custom.css') }}
让我知道如何在这些功能中全局添加公共。
我还尝试使用此引用删除url,但它不起作用。 How can I remove “public/index.php” in the url generated laravel?
答案 0 :(得分:0)
我做了三件事来解决这个问题。
我将此htaccess
文件放在我的项目根文件夹
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
我的公用文件夹中的.htaccess
配置,即project-folder/public
<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>
ServerName example.com
DocumentRoot "/path/projectfolder/public"
<Directory "/path/projectfolder/public">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require All
</Directory>
</VirtualHost>
这解决了我的问题