jkm

Рейтинг
120
Регистрация
20.02.2014


CFV\[1161170\]\[[^_[]+\[VALUE\]

Или так


CFV\[1161170\]\[(?!__UNIQUE__).*\[VALUE\]

Символ ^ обозначает начало строки, а в вышележащей папке сравнение будет с строкой Sub/2.jpg

Нужно просто убрать ^


RewriteEngine On
RewriteCond %{QUERY_STRING} =itemid=185
RewriteRule ^old/index.php$ /new/file.html? [R=301,L]

В первом варианте redirect 301 это директива mod_alias, который не позволяет делать сравнение с GET параметрами.

Если адресов для редиректа много, то можно сделать один общий RewriteRule для всех.

/old/index.php?itemid=100 => /new/file1.php

/old/index.php?itemid=200 => /new/file2.php

/old/index.php?itemid=300 => /new/file3.php


RewriteCond %{QUERY_STRING} ^itemid=(\d+)$
RewriteCond %1;100=/new/file1.php ^(\d+);\1=(.+) [OR]
RewriteCond %1;200=/new/file2.php ^(\d+);\1=(.+) [OR]
RewriteCond %1;300=/new/file3.php ^(\d+);\1=(.+)
RewriteRule ^old/index.php$ %2? [R=301,L]

Если apache версии 2.4 и подключены mod_headers, mod_setenvif, то можно ловить страницы с ошибкой 404 и добавлять заголовок Refresh с нужным адресом.


SetEnvIf Request_URI ^/(pigmenty)/\d+/$ CATEGORY_URL=/$1/

Header set Refresh "0; http://%{HTTP_HOST}e%{REDIRECT_CATEGORY_URL}e" "expr=%{REQUEST_STATUS} == 404 && -n reqenv('REDIRECT_CATEGORY_URL')"

Указать несколько категорий в шаблоне можно так


^/(pigmenty|cat1|cat2|cat3)/\d+/$

/path?query

В RewriteRule попадает только path. Все что после знака вопроса в %{QUERY_STRING}


RewriteCond %{QUERY_STRING} ^page=([0-9]+)
RewriteRule ^st.php$ http://site2.ru/dir/?page%1 [L,R=301]

Попробуте добавить флаг NE (noescape)


RewriteCond %{QUERY_STRING} keywords=(.*)
RewriteRule advanced_search_result\.php /search/?q=%1 [R=301,L,NE]
Dubok:
Если точнее, почему не работает конструкция
RewriteRule ^catalog/([^/]*)/$ index.php?catalog=$1 [L]

Шаблон ^catalog/([^/]*)/$ нормально срабатывает для адреса /catalog/abc/. Может конфликт с другими правилами.

Dubok:
Ребята, помогите, пожалуйста! Как правильно написать в mod rewrite переадресацию с /?catalog=abc в /catalog/abc/

301 редирект можно сделать так


RewriteCond %{QUERY_STRING} =catalog=abc
RewriteRule ^$ /catalog/abc/? [R=301,L]

оставить только то, что до первой запятой можно так


[^,]+\K,[^<]+

Адрес запрашиваете news/, а в шаблоне ^news$ слеш после news отсутствует. Поправьте RewriteRule так


RewriteRule ^news/$ news.php [L]
Всего: 750