2016-12-31 56 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

相關問題