我有一个使用AngularJS编写的Web应用程序和Jersey后端。我需要设置URL重写,以便除了给定的例外情况,其他所有内容都将被重写为Angular的index.html。
例如:
http://my.domain.com/about will be rewritten
http://my.domain.com/photos/photo1.jpg will NOT be rewritten (file photo 1 exists)
http://my.domain.com/rest/myservice will be NOT be rewritten (it is a call to REST service)
我已按以下方式设置Tomcat 8 URL重写阀门:在conf/server.xml中。
<Host name="my.domain.com" appBase="webapps/MyDomainServer" unpackWARs="true"
autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
<!-- access logging, aliases,...-->
</Host>
在conf/Catalina/my.domain.com/rewrite.config文件中
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} ^/rest.*
RewriteRule ^ - [L]
RewriteRule ^ index.html [L]
Tomcat忽略了我的重写设置,没有任何重写,日志中也没有错误/异常。我做错了什么?提前致谢。
我尝试将RewriteValve移动到META-INF的config.xml中并将重写配置重写为WEB-INF,但它的行为方式相同。