我想使用UrlRewriteFilter在Tomcat中重写Url 这是mod_rewrite apache
中的规则 RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1 [L]
我很困惑如何检查请求文件名,如果它不是文件或UrlRewriteFilter中的文件夹
有人能帮助我吗?
答案 0 :(得分:0)
实际上,您不必担心这一点。 Apache的mod_rerwite模块为您解决了这个问题。试试吧..如果你试图访问服务器中的文件夹或文件,它会打开它,或者它会应用你在那里的RewriteRule。
答案 1 :(得分:0)
你做不到。好吧,如果您使用的是UrlRewriteFilter版本3.2,您可以编写自己的自定义class-rule来检查它;但这并不是UrlRewriteFilter的设计目的。
这绝对属于Apache的mod_rewrite,特别是考虑到你的示例中有index.php
。为什么该请求甚至会被Tomcat转发/服务?
答案 2 :(得分:0)
这对我有用
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
"http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite>
<rule>
<note>
Fitler for checking if file exists.
</note>
<condition type="request-filename" operator="notfile" next="and" />
<condition type="request-filename" operator="notdir" />
<from>(.*)</from>
<to type="redirect" last="true">index.php/$1</to>
</rule>
</urlrewrite>