如果文件存在,如何创建要重写的Apache重写规则?

如果文件存在,如何创建要重写的Apache重写规则?,apache,mod-rewrite,Apache,Mod Rewrite,我正在处理一个未编写的.htaccess文件 重新编写引擎打开 重写规则^(foo | bar | baz | bof | x | y | z)(/.*)$$1.php 此规则与现有的.php文件相对应 foo.php bar.php baz.php bof.php x、 php y、 php z、 php 如果存在$1.php,我是否可以编写一个全面的规则,但只重写它 我正在尝试这样的事情 RewriteRule^(\w+)(/.*)$$1.php 但是,考虑这个路径 /hellowo

我正在处理一个未编写的.htaccess文件

重新编写引擎打开
重写规则^(foo | bar | baz | bof | x | y | z)(/.*)$$1.php
此规则与现有的.php文件相对应

  • foo.php
  • bar.php
  • baz.php
  • bof.php
  • x、 php
  • y、 php
  • z、 php
如果存在
$1.php
,我是否可以编写一个全面的规则,但只重写它

我正在尝试这样的事情

RewriteRule^(\w+)(/.*)$$1.php

但是,考虑这个路径

/helloworld/1/2/3=>helloworld.php
这里的问题是helloworld.php不存在。我不想重写这条路径


如果
$1.php

存在,我只想重写

RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(\w+).*$ $1.php

$1
对于RewriteCond来说是反直觉的,因为RewriteRule匹配(而不是替换)总是首先发生。

我更新了答案,使其更完整一些