2016-08-08 2 views
-1

Я пытаюсь использовать этот RedirectMatch:Что не так с этим выражением RedirectMatch?

RedirectMatch 301 /(.*.p0) /(.*.p1) 

заменить параметр страницы в URL. старый URL: http://www.example.com/some-list-c1-p0 новый URL: http://www.example.com/some-list-c1-p1

Что с ней?

Или я могу создать правило, перенаправляющее 301 следующие типы URL-адресов?

старый URL: http://www.example.com/some-list-c1-p0.html новый URL: http://www.example.com/some-list-c1-p1

Я использую:

RedirectMatch 301 /(.*.p0)\.html /$1 

Но я не могу получить, что 'p1' вместо '' p0

ответ

1

заменяемых сторона не содержит ссылок на совпадения. The Apache docs предложить примеры, как это:

RedirectMatch "(.*)\.gif$" "http://other.example.com$1.jpg" 

использованием $1, $2 и т.д. для обозначения захваченных матчей, так что попробуйте

RedirectMatch 301 /(.*.)p0 /$1p1 

и посмотреть, что работает лучше.

+0

Он работал на URL, но добавил параметры в конце. Например, http://www.example.com/some-list-c1-p1?id=1&page=0 – nickRO87

+0

Так как я могу удалить это из конца URL-адреса (? Id = 1 & page = 0)? – nickRO87

+0

@ nickRO87: это _might_ (untested) работа с заменой URL-адреса в '?', В противном случае вам, вероятно, придется использовать [mod_rewrite] (https://httpd.apache.org/docs/current/mod/mod_rewrite. html), который имеет флаг 'QSA' для контроля того, были ли удалены параметры запроса или нет. –

0

Я получил обходной путь со 2-й части моего вопроса

Это работает:

RedirectMatch 301 /(.*.)p0\.html /$1p1 
Смежные вопросы