繁体   English   中英

从网址中删除目录名称

[英]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先行断言NGINXApache均使用该库来支持正则表达式 ),因此,不会是任何无限的重定向循环。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM