2015-09-19 43 views
0

我試圖將呼叫重定向到我的Apache 2.4虛擬主機(Wampserver 2.5),它將某個模式匹配到我的DocumentRoot之外的目錄。下面是我的.conf文件中的相關代碼:Apache 2.4當別名工作時,AliasMatch不斷返回404

<VirtualHost *:80> 
    ServerName testserver.dev 
    DocumentRoot "D:\Path\to\webserver\public\build" 

    RewriteEngine On 
    LogLevel alert rewrite:trace6 

    # Statement below results in 404 
    AliasMatch "^/sitemap.\d+.xml.gz$" "D:\Path\to\webserver\private\index.php" 
</VirtualHost> 

當我打電話給阿帕奇如http://testserver.dev/sitemap.1.xml.gz我從服務器返回404。從我可以告訴匹配實際上工作,所以我假設目錄路徑以某種方式配置錯誤?如果我硬編碼和使用只是普通Alias它按預期工作:

# This works below 
Alias /sitemap.1.xml.gz "D:\Path\to\webserver\private\index.php" 

不知道我做錯了。我已經啓用日誌記錄,這是在錯誤日誌中顯示的內容:

init rewrite engine with requested uri /sitemap.1.xml.gz 
pass through /sitemap.1.xml.gz 

,並在訪問日誌的要求,不工作

"GET /sitemap.1.xml.gz HTTP/1.1" 404 304 

任何人有任何想法?我想這應該是我忽略的一些簡單的東西。

回答

0

我意識到這一點後,我沒有看到別名日誌記錄。

首先我說這個的LogLevel:

LogLevel debug alias:trace6

這讓我看到,當它試圖取代正則表達式匹配(這我不使用)在被刪除的反斜槓我目標目錄。由於我在Windows上,我改變了路徑如下:

D:/Path/to/webserver/private/index.php

而且按預想的路徑現在映射。

相關問題