Apache .htaccess为缺少的资源重写url

Apache .htaccess为缺少的资源重写url,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,我想将不存在的文件重写为php处理程序。我当前正在使用此.htaccess文件,但它不能按我希望的方式工作: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /app/index.php?_url=/$1 当我没有文件时,它工作;它正确重定向到我的应用程序中不存在的资源,并且我能够捕获它 当我有完全匹配的文件时(例如:tes

我想将不存在的文件重写为php处理程序。我当前正在使用此.htaccess文件,但它不能按我希望的方式工作:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /app/index.php?_url=/$1
当我没有文件时,它工作;它正确重定向到我的应用程序中不存在的资源,并且我能够捕获它

当我有完全匹配的文件时(例如:test.txt和I request/test.txt);它正确加载test.txt

但是,当我有部分匹配时(例如:test.txt存在,但我请求/测试);它根本不重定向。事实上,它给了我标准的Apache404。我想把它重写到我的应用程序中,这样我就可以用不同的方式处理请求了

我使用的是Debian的默认Apache2.2.22。我是否缺少一些配置,或者这是重写的预期行为?有什么方法可以实现我想要的吗?

我想您已经默认在Apache中启用了。尝试在.htaccess上添加此行:

Options -MultiViews
使用
MultiViews
Apache进行自己的重写,这通常与
mod\u rewrite

冲突,我认为您在默认情况下已在Apache中启用。尝试在.htaccess上添加此行:

Options -MultiViews

使用
MultiViews
Apache进行自己的重写,这通常与
mod_rewrite

冲突,就是这样!非常感谢。就是这样!非常感谢。