[英]Remove directory names from url
我在Lumen中有一个新项目,需要将其部署到登台服务器,并且已经完成了。 我在从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
因此,当前要查看我的应用程序,我需要输入如下网址:
http://stagingserverdomain.com/ProjectName/ProjectName/public/login
但是我希望我的网址是这样的:
http://stagingserverdomain.com/ProjectName/login
我已经尝试过SO的许多答案,但是它不起作用。
用这个:
RewriteEngine On
RewriteRule ^Projectname/login$ /ProjectName/ProjectName/public/login [L]
它应该为您提供以下URL:
http://stagingserverdomain.com/ProjectName/login
好问题! 将此Apache httpd
RewriteRule
添加到httpd.conf
文件中的相应服务器定义中:
RewriteEngine On
RewriteRule ^/(ProjectName)/((?!\1).*) /$1/$1/public/$2
或者,将其添加到Web服务器根目录下的.htaccess
文件中,例如,第一个ProjectName
目录所在的位置:
RewriteEngine On
RewriteRule ^(ProjectName)/((?!\1).*) $1/$1/public/$2
或者,将其添加到第一个ProjectName
目录(第二个ProjectName
目录所在的目录)内的.htaccess
文件中:
RewriteEngine On
RewriteRule ^((?!ProjectName).*) ProjectName/public/$1
或者,(建议这样做),切换到nginx
,然后执行以下操作:
location /ProjectName {
rewrite ^/([^/]+)/((?!\1).*)$ /$1/$1/public/$2;
}
上面的代码确保仅当您的URL不包含ProjectName/ProjectName
时才进行rewrite
(使用PCRE的先行断言 , NGINX和Apache均使用该库来支持正则表达式 ),因此,不会是任何无限的重定向循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.