Сразу же, я вижу, что результат, который вы хотите, g параметр «cat». Другая вещь, которую я замечаю, заключается в том, что .*
обычно жадный квантификатор: он будет потреблять все, поэтому ничего после него не будет соответствовать. Я не помню точно, что делает аромат регулярного выражения Apache, но я бы предположил, что вам нужно либо квалифицировать символы для соответствия, либо сделать квантификатор неохотным. Первый способ может выглядеть следующим образом:
RewriteRule show/cat/([^\/]*)/id/([^\/]*)/ show.php?cat=$1&id=$2
А второй будет выглядеть так:
RewriteRule show/cat/(.*?)/id/(.*?)/ show.php?cat=$1&id=$2
Однако, я надеюсь, вы понимаете, что URL вы дали, localhost/sdpisdtv2014/play/show/rc/573
, не соответствует этому шаблону: ему не хватает строки "cat"
и "id"
. Для того, чтобы соответствовать, вам нужно будет что-то вроде:
localhost/sdpisdtv2014/play/show/cat/rc/id/573/
Кроме того, это, как правило, хорошая идея, чтобы закрепить свои правила перезаписи, так что они не получают применять неожиданно. Что-то вроде:
RewriteRule ^/sdpisdtv2014/play/show/cat/([^\/]*)/id/([^\/]*)/ show.php?cat=$1&id=$2
(при условии, "localhost"
это имя домена, а не часть пути).
Вы должны предоставить более подробную информацию, чтобы мы могли дать вам полезный ответ. Вы говорите, что это не работает, но каково поведение, которое вы видите? Когда вы говорите, что хотите «получить результат ниже», вы имеете в виду, что это URL, который вы хотите, чтобы ваш посетитель входил, или это URL, который вы хотите, чтобы он был переписан? – brianmearns
localhost/sdpisdtv2014/play/show.php? Cat = rc & id = 573 Это динамический url (фактический URL), я хочу перенаправить этот тип URls на указанный ниже URL. localhost/sdpisdtv2014/play/show/rc/573 –
Хорошо. Тем не менее, вы на самом деле получаете терминологию назад. URL-адрес, который вводит пользователь, является тем, что получает «перенаправленный» или фактически просто перезаписывается в этом случае. Недвусмысленный способ сказать, что вы хотите, чтобы запросы, адресованные 'localhost/sdpisdtv2014/play/show/rc/573', были зарезервированы' localhost/sdpisdtv2014/play/show.php? Cat = rc & id = 573'. – brianmearns