2011-03-24 83 views
2

我在重寫網站的URL時遇到了一些問題。URL重寫(Apache)隱藏文件夾

的文件夾結構我基本上是

public_html 
-farms 
    -public 
    -functions 

所以basicly我要的是把像URL:

www.site.com/farms/public/pageInPublicFolder.php INTO www.site .com/farms/pageInPublicFolder.php

因此,如果我做了類似site.com/farms/index.php的事情,它應該使用公用文件夾中的索引文件,但隱藏公用文件夾中的事實URL。

通過在其他線程這裏尋找在現場我發現下面的代碼:

RewriteEngine On 
RewriteRule ^/(.*)$ /public/$1 

我已經放在上面的代碼在農場夾.htaccess文件,但是我只是得到一個404試圖訪問任何文件。任何幫助?

回答

0

首先,無論何時在.htaccess中使用RewriteRule,匹配的字符串將永遠不會以斜槓字符開頭。所以,你的規則永遠不會匹配。

然後,您需要確保您不要以遞歸方式繼續應用規則,因爲規則在重寫後(至少在每個目錄上下文中)都會再次運行。所以,你真正想要的是一樣的東西:

RewriteEngine on 
RewriteBase /home/yourdirectory/public_html 

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

仔細檢查這是否適用於您的情況,如果沒有,從你的Apache發佈錯誤日誌,所以我可以幫助解決問題,如果您想。

+0

感謝您的幫助,但我仍然得到404:[Thu Mar 24 18:17:05 2011] [error] [client :: 1] script'/Applications/MAMP/htdocs/farms/login.php'not發現或無法統計--- Rewritebase是:/ Applications/MAMP/htdocs(htdocs包含farms文件夾) – AzaraT 2011-03-24 18:17:59