Использование mod_rewrite для создания формата RESTful URL - PullRequest
1 голос
/ 18 августа 2010

У меня есть веб-страница http://mydomain.com/form.php?id=123, Мне нужно сохранить этот формат для старой функциональности и реализовать новую функциональность, чтобы пользователь мог получить доступ к этой странице следующим образом http://mydomain.com/123.

  1. Итак, клиент увидит это http://mydomain.com/123.
  2. А сервер будет понимать под старой версией http://mydomain.com/form.php?id=123.

Таким образом, мне не нужно менять старую функциональность. Я знаю, что это может быть достигнуто через правило HTaccess. но не знаю как. Пожалуйста помоги. Спасибо.

1 Ответ

4 голосов
/ 19 августа 2010

Это, вероятно, должно обработать это для вас

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ form.php?q=$1 [L,QSA]

!-f исключает любые файлы, которые уже существуют (поэтому попадание в /form.php напрямую не будет перезаписано), !-d исключает любые существующие каталоги(поэтому, если у вас есть реальный /123/ на вашем сайте, он не будет переписан), а в остальном перенаправляет все остальное в ваш скрипт form.php.

Если вы хотите перенаправить только числовые URL-адреса, тогдаКомментарий Мхитзы выше - это то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...