如何删除' public'当Laravel安装在子目录中时,从Laravel URL(v5.6)开始

时间:2018-03-24 01:37:40

标签: php laravel .htaccess

我在我的商业网站上使用WordPress,在项目管理应用程序中使用Laravel。

这是我的目录结构。

public_html
    -mainsite (my WordPress site is in this directory)
    -work (Laravel Application is in this directory)

当用户访问我的主域名(例如www.example.com)时,我使用以下.htaccess规则将访问者重定向到www.example.com/mainsite

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/mainsite/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /mainsite/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ mainsite/index.php [L] 
</IfModule>

我的项目管理应用程序位于&#39; work&#39;使用此URL可以轻松访问目录

www.example.com/work/public

现在我想允许用户使用此URL访问我的项目管理应用程序 (我想从网址中删除&#39; public&#39; -

www.example.com/work

你能帮我解决这个问题吗?

(当Laravel安装在根目录中并且我知道如何操作时,很容易从URL中删除#public;#/ p>

这不是一个重复的问题,原因如下 - 我的Laravel安装位于我的根目录的子目录中,我也使用不同的站点(WordPress站点)作为我的基本URL

3 个答案:

答案 0 :(得分:0)

我想这就是你想要的......

n = int(input("Enter n: "))
total = 0
for j, i in enumerate(range(4, n + 4, 4)):
    if j % 2 == 1:
        i = -i
    total += i
print()
print("The sum is: %s"%(total))

答案 1 :(得分:0)

添加以下规则:

RewriteCond %{HTTP_HOST} ^(www\.)?example.com$
RewriteCond %{REQUEST_URI} !^/work/public/
RewriteRule ^work/(.*)$  /work/public/$1 [L] 

因此所有规则应该如下所示:

 <IfModule mod_rewrite.c>
 RewriteEngine on

 RewriteCond %{HTTP_HOST} ^(www\.)?example.com$
 RewriteCond %{REQUEST_URI} !^/work/public/
 RewriteRule ^work/(.*)$  /work/public/$1 [L]

 RewriteCond %{HTTP_HOST} ^(www\.)?example.com$
 RewriteCond %{REQUEST_URI} !^/mainsite/
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ /mainsite/$1  [L]
 RewriteCond %{HTTP_HOST} ^(www\.)?example.com$
 RewriteRule ^(/)?$ mainsite/index.php [L] 
 </IfModule>

注意:清除浏览器缓存测试

答案 2 :(得分:0)

  • 将Laravel移到public_html之外
  • 将Laravel公用文件夹的内容移动到public_html / work
  • 将以下代码放入\ App \ Providers \ AppServiceProvider register():

    $ this-> app-> bind('path.public',function(){ 返回base_path('public_html / work'); });