我在apache2 conf文件中配置了一系列规则,如下所示:
RewriteEngine On
LogLevel alert rewrite:trace3
RewriteCond %{HTTP:Accept} text/xml [NC]
RewriteCond %{REQUEST_URI} !\.[a-zA-Z0-9]{3,4}
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1.xml
RewriteCond %{HTTP:Accept} text/json [NC]
RewriteCond %{REQUEST_URI} !\.[a-zA-Z0-9]{3,4}
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1.json
执行以下任务:
1)如果调用的URL没有扩展名并且传入了“text / xml”标题,则附加.xml
2)如果调用的URL没有扩展名并且已经传入了“text / json”的标题,那么追加.json
除了特定情况外,这种方法很好:
如果我有一个包含以下内容的文件夹:
2016.xml
2016.json
2016 <-(A sub folder)
用户调用http://example.com/foo/bar/2016并将Accept标头设置为“text / json”或“text / xml”
在这种情况下,规则不会触发,并且会返回2016文件夹的目录列表而不是相应的文件。
我可以配置任何方式让它在这种情况下返回2016.xml或2016.json吗?
谢谢!