2009-10-26 74 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

相关问题