2014-03-17 3 views
-1
localhost/sdpisdtv2014/play/show.php?cat=rc&id=573 

Я хочу результат нижеПользовательский URL Переписывая с параметрами

localhost/sdpisdtv2014/play/show/rc/573 

Мой .htaccess код является (но не работает)

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule show/cat/(.*)/id/(.*)/ show.php?cat=$1&id=$2 
RewriteRule show/cat/(.*)/id/(.*) show.php?cat=$1&id=$2 

Mode_rewrite включен, а также проверяется на перенаправлении веб-сайт и он отлично работает

+0

Вы должны предоставить более подробную информацию, чтобы мы могли дать вам полезный ответ. Вы говорите, что это не работает, но каково поведение, которое вы видите? Когда вы говорите, что хотите «получить результат ниже», вы имеете в виду, что это URL, который вы хотите, чтобы ваш посетитель входил, или это URL, который вы хотите, чтобы он был переписан? – brianmearns

+0

localhost/sdpisdtv2014/play/show.php? Cat = rc & id = 573 Это динамический url (фактический URL), я хочу перенаправить этот тип URls на указанный ниже URL. localhost/sdpisdtv2014/play/show/rc/573 –

+0

Хорошо. Тем не менее, вы на самом деле получаете терминологию назад. URL-адрес, который вводит пользователь, является тем, что получает «перенаправленный» или фактически просто перезаписывается в этом случае. Недвусмысленный способ сказать, что вы хотите, чтобы запросы, адресованные 'localhost/sdpisdtv2014/play/show/rc/573', были зарезервированы' localhost/sdpisdtv2014/play/show.php? Cat = rc & id = 573'. – brianmearns

ответ

0

Сразу же, я вижу, что результат, который вы хотите, 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" это имя домена, а не часть пути).

+0

По-прежнему нет эффекта –

+0

Не укусить Что делать. –

+0

Это я хочу на пользовательском сайте PHP –

0
RewriteEngine On 
RewriteRule show/cat/([^/]*)/([^/]*)$ show.php?cat=$1&id=$2 

это должно работать

+0

Это также не работает –

Смежные вопросы