2016-02-29 126 views
0

首先,因为我在一个共享主机上,我不能将我的公共文件夹的内容直接放入根目录。我有整个项目放到public_html目录,并通过.htaccess指向公用文件夹像下面(这对于一个Laravel项目工作正常):Laravel 5共享主机子域名htaccess

RewriteCond %{REQUEST_URI} !^public 
RewriteRule ^(.*)$ public/$1 [L] 

我现在创建一个子域名与主机它在我的public_html目录中创建了一个名为store.domain.com的目录。这将是一个完全不同的Laravel项目。如果我将带有.htaccess文件的常规文件夹结构放置到此子域文件夹中,则在访问子域时会出现503错误。我和主持人谈过,当他们建议删除根.htaccess文件时,子域开始工作,但主域名已经崩溃了。

我一直在努力奋斗几天,现在阅读各种解决方案给其他人在WordPress上的类似问题,但不能得到任何工作正常。该解决方案如下工作排序的,但它使添加公用文件夹到我的网址为子域(根域项目工作正常):

RewriteBase/

RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
RewriteCond %{HTTP_HOST} ^store.mc.com 
RewriteRule ^(.*)$ /public/$1 [L] 

RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
RewriteCond %{HTTP_HOST} !^store.mc.com$ 
RewriteCond %{REQUEST_URI} !^public 
RewriteRule ^(.*)$ /public/$1 [L] 

人有这个问题,或不知道如何解决呢?

回答

1

我真的不明白为什么这个工作,但低于固定我的问题:

RewriteBase/

RewriteCond %{HTTP_HOST} !^subdomain 
RewriteCond %{REQUEST_URI} !^public 
RewriteRule ^(.*)$ public/$1 [L] 

RewriteCond %{HTTP_HOST} ^subdomain 
RewriteCond %{REQUEST_URI} !^public 
RewriteRule ^(.*)$ public/ [L] 
0

如果没有前导斜杠,您的RewriteCond无效。

变化:

RewriteCond %{REQUEST_URI} !^public 

RewriteCond %{REQUEST_URI} !^/public 
+0

我认为没有这将是斜线相对于.htaccess位置,但即使如此,第一个代码块也不是问题,正如你可以看到第二个块在/那里。 – Wancieho