2016-12-31 58 views
2

我在我的共享主机的根目录安装了laravel应用程序“public_html现在我想在ru /子文件夹中安装这个应用程序的俄语版本,但是当我去example.com/ru时,我得到了404页面未找到错误。我使用apache web服务器根文件夹我的.htaccess文件包含这些代码如何在共享主机的子文件夹中安装laravel应用程序?

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteRule ^(.*)$ public/$1 [L] 
</IfModule> 

我应该如何改变这种配置?

感谢。

+0

你的目录结构是什么? 'ru /'目录中的整个laravel应用程序? – sepehr

+0

我有根文件夹中的laravel应用程序和子文件夹中的另一个laravel应用程序/ ru – user3725280

+0

这是我的主机中的目录结构的图像https://i.stack.imgur.com/BcC2B.png – user3725280

回答

2

你会做你的根目录下安装同样的方式 我会告诉你我是如何将它安装在我的共享主机帐户上的,包括main和子域。 我上传了我的所有项目的子文件夹后,你的将是example.com/ru,请执行以下操作:

  1. 在公共文件夹有你.htaccess文件。由于您基本上是将其设为子域名,因此需要将其置于该子域的根目录中,因此请将.htaccess从公用文件夹转移到ru文件夹的根目录。
  2. 打开.htaccess和改变/添加以下内容:

    DirectoryIndex的公共/ index.php文件

,并在RewriteRule改一下这个:

public/index.php 

而只是为了要清楚,您的.htaccess应该在您的更改结束后像这样:

DirectoryIndex public/index.php 
<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 

    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^public/index.php [L] 

    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
</IfModule> 

这应该适合你。

+0

我想为.htaccess配置if url以/ ru文件夹开头否则转到公共文件夹 – user3725280

+0

对于主站点,您需要单独的'.htaccess'。因为这基本上是一个“新网站”,或者你的案例中的子域名。试试我上面写的,你会看到它工作正常。 – GabMic

+0

我在public_html中有一个.htaccess文件,在/ public中有一个.htaccess文件,我也有一个.htaccess文件在/ ru,一个.htaccess文件在/ ru/public文件夹中。而且应该改变一个? – user3725280

相关问题