我正在与Lumen合作开发基于微服务的架构。本地环境运行良好,但是生产服务器需要调整,因为它不能具有相同的链接结构,并且我希望每个环境中的代码都相同。
[在本地环境中,我为每个微服务创建了虚拟主机,例如books.xyz和authors.xyz指向/ public文件夹,因此链接结构DOES N'T包含public。在运行中,它像服务器.servername.com / books和beta.servername.com/authors一样托管。我已经开始使用lumen(/ admin)开发一个管理面板,但是问题是链接结构太不同了,无法在生产中使用。 (css / js资产得到404等)。
如何删除生产URL中的/ public?
出于安全原因,我不想将所有内容从公用文件夹移至根目录!
我尝试在根目录上创建一个.htaccess文件,但以下操作均无效:
# <IfModule mod_rewrite.c>
# RewriteEngine On
# RewriteCond %{REQUEST_URI} !^/books/public/
# RewriteRule ^(.*)$ /public/$1 [L,QSA]
# RewriteRule ^game/(.*)$ /books/public/$1 [L,QSA]
# </IfModule>
或
# <IfModule mod_rewrite.c>
# RewriteEngine On
# RewriteRule ^(.*)$ books/public/$1 [L]
# </IfModule>
或
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ books/public/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php
尝试一下
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Run
php artisan config:cache
php artisan view:clear