2012-11-15 45 views
3

我正在使用Windows 7 64位(也許這不重要),並且我安裝了xampp。 在我的htdocs /目錄中,我有更多的項目。現在,其中一個(讓我說htdocs /測試/)我已經創建了一個名爲「示例」的虛擬主機。這工作得很好...... 內DIR /測試/我有這個代碼.htaccess文件:在本地主機的xampp中啓用重寫模式

RewriteEngine on 

RewriteBase /test 
Options +FollowSymLinks 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(.*)\.(js|gif|jpeg|jpg|png)$ 
RewriteRule . index.php 

在這裏,我想對所有流量重定向到我的網頁index.php因爲我在這裏使用了一些我的系統整個項目從索引頁面開始。在httpd.conf,我啓用rewrite_module和也在裏面

<Directory "C:/Program Files/xampp/htdocs"> 

我已經改變了AllowOverride指令All

現在,正如我所說的,當我嘗試使用創建的虛擬主機「示例」訪問我的項目時,此工作正常。但是,當我嘗試進入一些其他項目我的htdocs目錄裏面,我得到一個內部服務器錯誤(HTTP 500),這消息在日誌文件中:

[Thu Nov 15 11:07:12 2012] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace. 

另外,如果我在URL 127.0.0.1localhost類型,我得到我的項目定義與「示例」虛擬主機... 這是相當混亂,任何人都可以幫助嗎?

+0

如果您有Apache 2.2,將LogLevel設置爲調試將無濟於事。要開始解決它,您需要在虛擬主機指令中添加這些指令: 'RewriteLog「logs/myvhost.rewrite.log」 RewriteLogLevel 1'; rewriteloglevel告訴Apache多少是冗長的,從0(無)到9(全部)。根據您的需要更改myvhost.rewrite.log。 –

+0

哪個目錄是虛擬主機的DocumentRoot? –

+0

請你可以提供你的vhosts配置爲'test'還有另外一個項目嗎? – Jon

回答

0

這聽起來像你的根目錄和子目錄htaccess文件有衝突。從根htaccess文件中排除您的子目錄處理,並確保使用[L]ast rule指令。

根HTACCESS - 排除「test」子目錄,使用[L] ast規則指令。

Options +FollowSymLinks 

RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(.*)\.(js|gif|jpeg|jpg|png)$ 

# exclude the "test" subdirectory 
RewriteCond %{REQUEST_URI} !^(test)/? 

# add [L] 
RewriteRule . index.php [L] 

「Test」 子目錄的.htaccess - 使用[L] AST規則指令。

RewriteEngine on 
RewriteBase /test/ 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(.*)\.(js|gif|jpeg|jpg|png)$ 

# add [L] 
RewriteRule . index.php [L]