2016-05-16 116 views
2

我需要將Laravel項目部署到域子文件夾。我已經將文件放在正確的位置,即與public_html文件夾位於同一級別的項目文件夾,並且我已將公用文件夾的內容複製到public_html(當然,我創建了symlink來說明事實)。Laravel重新路由子文件夾.htaccess

我只有一個問題:

如果我去my-domain.com/proj-name,我可以看到主頁沒有問題。
但是,當我去到項目頁面my-domain.com/proj-name/about(例如),我得到一個404 Not Found: The requested URL /proj-name/about was not found on this server.

我認爲解決的辦法是編輯重寫規則上的.htaccess這樣,當我瀏覽到my-domain.com/proj-name/about,它消除了proj-name彷彿它試圖訪問my-domain.com/about

我該怎麼做?

這是我目前的的.htaccess

<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^index.php [L] 

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

回答

-1

你應該做到以下幾點:

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

注:以上應該在位於public_html而不是在.htaccesspublic_html/proj_name

+1

我創建'.htaccess'在'public_html',但它仍然不起作用。在'public_html'裏面,除了這兩行'.htaccess'之外,我還有一個名爲'proj_name'的符號鏈接,這個鏈接導致Laravel項目'public'文件夾。 –

+0

你的符號鏈接是正確的。你是否將'public'中的'.htaccess'改爲原來的狀態? – user2094178

+0

'public'文件夾中的'.htaccess'是我在我的問題中發佈的(在Laravel 5.2項目創建時生成的)。 –