2010-06-11 251 views
2

我試圖在Ubuntu/Apache2服務器的根文件夾中使用.htaccess,以便將子文件夾屏蔽到子文件夾,並且不斷收到500內部錯誤。我知道我正在做一些愚蠢的錯誤,這是導致問題的一個愚蠢的錯誤。我已經檢查了所有類似的在線和線上的線索,每當我嘗試他們的建議500繼續。使用htaccess重寫子文件夾到子文件夾

這是我的代碼。

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^admin\.mydomain\.com.*$ 
RewriteRule (.*) intranet/$1 [L] 

我想會發生什麼,如果用戶訪問admin.mydomain.com他們將得到的文件夾admin.mydomain.com/intranet/但他們的地址欄的內容仍然會admin.mydomain。 COM。任何想法我做錯了什麼?

另外,一些線上線索談到了這個系統可能存在的問題。這是做這個掩蔽的最好方法,我應該使用虛擬主機設置嗎?

回答

2

重寫規則應該工作,雖然我可能會寫

RewriteEngine on 
RewriteBase/#omit if in a <Directory> or .htaccess 
RewriteCond %{HTTP_HOST} =admin.mydomain.com 
RewriteRule ^(?!intranet/).* intranet/$0 

現在,你可能要檢查你的Apache的錯誤日誌。它可能會告訴你錯誤是什麼。我的猜測是你沒有在httpd.conf中啓用mod_rewrite。

+0

如果我做了apache2ctl -M,我在模塊列表中看到了rewrite_module。當我檢查apache2錯誤日誌時,我得到「由於可能的配置錯誤,請求超過了10個內部重定向的限制。使用'LimitInternalRecursion'在必要時增加限制,使用'LogLevel debug'獲得回溯。我是新來的這個服務器管理員的東西,所以任何想法都會有幫助嗎? 另外,我注意到你改變了^ admin \ .mydomain \ .com。* $到=「admin.mydomain.com」,最新的區別是什麼?與(。*)到。*和$ 1到$ 0相同......這些更改有什麼作用? – 2010-06-11 17:19:18

+0

另外,我嘗試了=「admin.mydomain.com」,它不會觸發。我做了一個測試重定向RewriteRule。* http://www.mydomain.com,它不會觸發=「admin.mydomain.com」,但它會與^ admin \ .mydomain \ .com。*一起使用$ – 2010-06-11 17:45:25

+0

@歐文艾倫好吧,我用反向預測修正了遞歸,並刪除了域名引用。這應該工作。 「$ 0」是正則表達式的全局匹配。 – Artefacto 2010-06-11 19:00:24

相關問題