2012-04-10 62 views
0

說明:

我經常遇到這樣的問題,當我有位於/var/www/一個網站,增長方式過大,而決定移動,基本上所有的它,/var/www/main_files。簡單地把一個符號鏈接/var/www/index.html指向/var/www/main_files/index.html不起作用。我相信它不起作用的原因是因爲index.html文件仍然在符號鏈接(/var/www)的目錄中被「執行」。因此,任何需要包含/取出的文件將不再具有正確的路徑。有沒有辦法快速/輕鬆地創建現有網站文件夾的符號鏈接?

可以將VHost目錄更改爲/var/www/main_files,但這太永久了。我可能仍然想在/var/www有幾個文件。我也可以通過手動更改實際html/php/js文件中的任何文件路徑,但這不僅過於永久,而且速度很慢。

問:

有沒有一種方法,短期使用mod_rewrite(再次,太永久)的,以指示Apache遵循符號鏈接(假設符號鏈接都在文檔根目錄),並且當用戶進入到www.example.com/index.html,加載網頁就好像用戶已經去www.example.com/main_files/index.html?如果不是,那麼我應該考慮哪些其他選項?

動機:

我經常遇到這樣的問題時,我想調試一個網站,我趕緊下載一個免費的模板(即download this one)。大多數這些模板的所有文件都位於頂層文件夾中,因此將其全部轉儲到/var/www非常麻煩,尤其是使用多個模板。我想要的是爲模板創建一個子文件夾,但仍能夠從www.example.com/index.html加載它,但不明確從www.example.com/template1/index.html

回答

2

遵循符號鏈接的指令不是mod_rewrite的一部分,但在Apache的

的核心

要啓用該功能,你必須添加了FollowSymLinks選項指令:

<Directory /usr/local/httpd/htdocs> 
    Options Indexes FollowSymLinks 
    </Directory> 

http://httpd.apache.org/docs/2.2/mod/core.html指令。

+0

但是,Apache會遵循任何符號鏈接?例如,如果我設置一個指向/home/foo/bar/index.html的符號鏈接? (謝謝btw) – puk 2012-04-10 06:28:29

+0

你確定這是做我想要的嗎?我只問,因爲我一直有以下'選項-Indexes + FollowSymLinks' – puk 2012-04-10 06:31:00

+0

如果你只需要在文件目錄內重定向一個文件,你可以使用mod_rewrite;如果您想使用符號鏈接,則需要使用選項啓用它們。 也許你不需要符號鏈接,但只是一個重寫規則,請參閱http://stackoverflow.com/questions/990392/htaccess-rewrite-to-redirect-root-url-to-subdirectory – lrosa 2012-04-10 20:15:17

相關問題