2009-10-26 32 views
0

我想要一個url http://domain.com/sitemap.xml內部指向htdocs中的文件sitemap_book.xml,沒有任何301/302重定向。內部重定向到Apache中的另一個文件

請爲此建議重寫規則。

我想出了

RewriteCond %{REQUEST_FILENAME} "sitemap.xml" 
    RewriteRule ^(.*)$ sitemap_book.xml [R] 

,但它並沒有[R]工作。給出400個不好的請求

當我使用[P]時,我得到502代理錯誤。我試着用下面的代碼設置mod_proxy

<IfModule mod_proxy.c> 
ProxyRequests On 

<Proxy *> 
    Order deny,allow 
    Deny from all 
    Allow from 127.0.0.1 
</Proxy> 
</IfModule> 

這給出了403禁止。

回答

1

REQUEST_FILENAME始終是一個絕對的文件系統路徑,而REQUEST_URI總是一個絕對URL路徑。甚至直接在RewriteRule模式:所以,你的例子寧願RewriteCond %{REQUEST_URL} =/sitemap.xml(逐一比較=):工作

RewriteRule ^/sitemap\.xml$ sitemap_book.xml 

此外,R標誌總是引起外部重定向而不是內部。因此,請將其忽略:

RewriteRule ^/sitemap\.xml$ sitemap_book.xml 
+0

這也不起作用。它說400錯誤的請求。當我添加[R]使其成爲外部重定向時有效。 任何想法爲什麼Apache沒有拿起內部重定向? – Sanjay 2009-10-27 10:21:00

相關問題