我希望网址http://domain.com/sitemap.xml在内部指向htdocs中的文件sitemap_book.xml,而不会有任何301/302重定向。
请为此建议重写规则。
我想出了
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 Forbidden。
答案 0 :(得分:1)
REQUEST_FILENAME 始终是绝对文件系统路径,而 REQUEST_URI 始终是绝对URL路径。因此,您的示例宁愿使用RewriteCond %{REQUEST_URL} =/sitemap.xml
(=
:词典比较),也可以直接使用RewriteRule
模式:
RewriteRule ^/sitemap\.xml$ sitemap_book.xml
此外,R
标志始终导致外部重定向而不是内部重定向。所以就这样离开吧:
RewriteRule ^/sitemap\.xml$ sitemap_book.xml