所以这就是我想要做的。我有一个简单的框架,我使用mod重写来重写网址,以便他们指向正确的文件。我有一个位于web文件夹内的进程文件夹(web文件夹是所有实际网站文件,如图像,CSS等)。
这很好但我现在要做的是有一个default.php文件来处理表单。如果我将表单指向它,该文件工作得很好,但我希望能够将表单指向它的正确文件,如果文件不存在,那么它使用default.php
表单由类创建,操作设置为进程/ {ID OF THE FORM} .php这个想法是任何人都可以使用类创建表单,如果他们不需要做任何事情special,default.php文件将处理表单。
我意识到我可以将表单类设置为始终使用default.php,然后在default.php文件中我可以检查是否存在正确的文件。如果确实如此,那么使用该文件,如果没有,那么继续处理表单,但我仍然很想知道这样的东西是否适用于mod重写:
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]
答案 0 :(得分:14)
仅此规则应该这样做:
RewriteCond %{DOCUMENT_ROOT}web/$0 !-f
RewriteRule ^process/[^/]+$ web/process/default.php [L]
如果请求的路径无法映射到现有文件,则应将其重写为默认文件。
答案 1 :(得分:2)
您通常应该在RewriteRule之前调用RewriteCond。如果符合Conds,则触发规则。