首页 > 解决方案 > 为什么我的 HTACCESS 不能在 PHP 中使用多个 RewriteRule?

问题描述

我对 PHP 中的多个 RewriteRules 有一点问题。

这是我的 htaccess:

DirectoryIndex start.php

RewriteEngine on 

RewriteRule insert          insert_kunde.php
RewriteRule insert2         insert_kunde_2.php

如果我调用http://127.0.0.1/Adressen-REST/insert它工作正常并将我重定向到insert_kunde.php

但是如果我调用http://127.0.0.1/Adressen-REST/insert2,我将被重定向到 insert_kunde.php,而不是 insert_kunde_2.php。

如果我将此行注释掉,它会起作用:

#RewriteRule insert         insert_kunde.php

有人知道为什么吗?

标签: php.htaccessmod-rewrite

解决方案


您需要更精确地使用您的模式:

RewriteEngine on
RewriteRule ^/?Adressen-REST/insert$ /Adressen-REST/insert_kunde.php [END]
RewriteRule ^/?Adressen-REST/insert2$ /Adressen-REST/insert_kunde_2.php [END]

您的示例中的问题是模糊模式insert匹配所有/insert,/insert2和. 因此,您的第一条规则将始终得到应用。并将再次应用于已经重写的请求。insert_kunde.phpinsert_kunde_2.php


推荐阅读