我正在尝试创建基于第一级目录名称重写的 mod_rewrite 规则,加上故障转移以重写到标准文件,以防没有匹配的目录名称。
例子:
我有units.php、models.php 和other.php。other.php 文件应处理所有未分配的请求。
http://www.mydomain.com/units/4435 应该重定向到/units.php?id=4435
http://www.mydomain.com/models/594 应该重定向到 /models.php?id=594
http://www.mydomain.com/anything 应该重定向到 /other.php?id=anything
http://www.mydomain.com/anything/893 应该重定向到 /other.php?id=anything/893
让我知道这是否有意义。我不确定如何构建规则和条件来实现我想要的。
这就是我试图做到的。它适用于以“units”或“models”开头的 URL,但如果我尝试任何其他 URL,则会收到 500 错误:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(units)/(.+)$ /units.php?id=$2 [L,NC]
RewriteRule ^(models)/(.+)$ /models.php?id=$2 [L,NC]
RewriteRule ^(.+)$ /other.php?id=$2 [L,NC]