我在Lumen中有一个新项目需要部署到Staging服务器,我已经完成了。我正面临从URL中删除目录名称的问题。我的项目目录是这样的:
DIR - ProjectName
DIR - ProjectName {Lumen files inside this directory}
DIR - app
DIR - bootstrap
DIR - database
DIR - public
DIR - resources
DIR - storage
DIR - tests
DIR - Vendor
所以目前要查看我的应用程序我需要输入这样的URL:
http://stagingserverdomain.com/ProjectName/ProjectName/public/login
但是我希望我的网址是这样的:
http://stagingserverdomain.com/ProjectName/login
我已经尝试了很多答案,但它不起作用。
答案 0 :(得分:0)
使用此:
RewriteEngine On
RewriteRule ^Projectname/login$ /ProjectName/ProjectName/public/login [L]
它应该留下以下网址:
http://stagingserverdomain.com/ProjectName/login
答案 1 :(得分:0)
好问题!将此Apache httpd
RewriteRule
添加到httpd.conf
文件中的相应服务器定义中:
RewriteEngine On
RewriteRule ^/(ProjectName)/((?!\1).*) /$1/$1/public/$2
或者,将此添加到网络服务器根目录的.htaccess
文件中,例如,第一个ProjectName
目录所在的位置:
RewriteEngine On
RewriteRule ^(ProjectName)/((?!\1).*) $1/$1/public/$2
或者,将其添加到第一个.htaccess
目录(第二个ProjectName
目录所在的目录)中的ProjectName
文件中:
RewriteEngine On
RewriteRule ^((?!ProjectName).*) ProjectName/public/$1
或者(这是推荐的行动方案),切换到nginx
,然后执行此操作:
location /ProjectName {
rewrite ^/([^/]+)/((?!\1).*)$ /$1/$1/public/$2;
}
上述代码确保只有在您的网址已经包含ProjectName/ProjectName
(使用rewrite
的前瞻断言时才会发生PCRE ,NGINX和Apache用于支持regular expressions的库,因此,不会有任何无限重定向循环。