htaccess mod_rewrite как переписать пустые переменные - PullRequest
0 голосов
/ 26 февраля 2010

Я попытался создать файл htaccess, который переписывает, например, URL-адрес из / index.php? Type = car & model = audi & color = 990000 & year = 1995 to / index / car / audi / 990000 /1995.

На данный момент я использую следующее:

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+) $1.php?type=$2&model=$3&color=$4&year=$5

Проблема в том, что он работает нормально, когда вы заполняете все переменные, но когда вы хотите, чтобы все автомобили из «Ауди» сохраняли цвет и год пустыми, страница зависала. Как я могу изменить мод, чтобы страница не вылетала и он получал правильные переменные в PHP?

1 Ответ

0 голосов
/ 26 февраля 2010

На первый взгляд я бы изменил + на * в вашем правиле. + означает один или несколько, а * означает ноль или более. Кроме того, вам может потребоваться сделать / необязательным.

EDIT: Попробуйте это:

RewriteRule ^([^/]+)/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*) $1.php?type=$2&model=$3&color=$4&year=$5
...