繁体   English   中英

如果文件不存在,则 .htaccess 重定向

[英].htaccess redirect if file doesn't exist

所以这就是我想要做的。 我有一个简单的框架,我正在使用 mod rewrite 来重写 url,以便它们指向正确的文件。 我有一个进程文件夹,它位于 web 文件夹内(web 文件夹是所有实际网站文件(如图像、css 等)所在的位置)。

这很好用,但我现在要做的是有一个 default.php 文件来处理 forms。 如果我将表单指向它,该文件效果很好,但我希望能够将表单指向它的正确文件,如果文件不存在,那么它使用 default.php

The forms are create by a class and the action is set to go to process/{ID OF THE FORM}.php The idea is that anyone can create a form using the class and if they don't need to do anything special, the default.php 文件将处理表单。

我意识到我可以将表格 class 设置为始终使用 default.php 然后在 default.php 文件上我可以检查是否存在正确的文件。 如果是,则使用该文件,如果不是,则继续处理表单,但我仍然很想知道这样的事情是否适用于 mod rewrite:

RewriteRule ^process/([^/]*) /web/process/$1
RewriteCond %{DOCUMENT_ROOT}/web/process/$1 !-f
RewriteCond %{DOCUMENT_ROOT}/web/process/$1 !-d
RewriteRule ^process/([^/]*) /web/process/default.php [L]

仅此规则就应该这样做:

RewriteCond %{DOCUMENT_ROOT}web/$0 !-f
RewriteRule ^process/[^/]+$ web/process/default.php [L]

如果请求的路径无法映射到现有文件,则应将其重写为默认文件。

您通常应该在 RewriteRule 之前调用 RewriteCond。 如果满足条件,则触发规则。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM