2012-01-07 214 views
2

我知道這不是原來的問題,但我已經閱讀了幾個帖子和問題,仍然無法弄清楚。Apache和重寫/重定向到htaccess到不同的文件夾

我在localhost(apache服務器)上,默認服務器home在/ var/www中。有一個文件夾'項目'與幾個子文件夾,其中之一被稱爲web與index.php文件。所以現在如果我想去索引,我需要使用完整的url localhost/project/web /。

我想使它更好,這樣如果你去localhost /項目,你要麼重定向到本地主機/項目/網絡/或URL保持不變,但它的工作原理(遺憾的是這個天真的公式)。

在.htaccess我改變了目錄索引,但隨後的所有鏈接(因爲它們是相對的)不工作。

我嘗試這樣做的.htaccess在/ var/WWW /項目:

RedirectMatch permanent ^/$ ./web/ 
<Files .htaccess> 
order allow,deny 
deny from all 
</Files> 
Options -Indexes 

但它不工作,去到localhost /項目試圖列出項目目錄(這是不允許的,由於選項-Indexes ,這是我想要的)。我需要它是獨立於URL中的「本地主機」的,因爲它必須在任何地方工作(如果的.htaccess是允許的)

感謝您的任何意見

回答

0

RedirectMatch像mod_rewrite的確實沒有一個基地。即使它在/項目目錄中的htaccess文件,你需要完整的URI:

RedirectMatch permanent ^/project/$ /project/web/ 

如果你想讓它去/project/web/index.php 沒有瀏覽器重定向(指在瀏覽器地址欄的地址留在本地主機/項目/),你需要在內部重寫URI使用mod_rewrite:

RewriteEngine On 
RewriteRule ^$ web/index.php [L] 

注意mod_rewrite的使用基本URI的htaccess文件是(但「前綴「或刪除前導斜槓)。

+0

謝謝!第一個工作正常。 rewriteengine引發了一些「內部服務器錯誤」,但沒關係,第一個沒問題 – ladar 2012-01-07 21:00:52

相關問題