jkm

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

Директивы Redirect и RedirectMatch модуля mod_alias здесь не подойдут.

Средствами mod_rewrite это можно сделать так


RewriteCond %{QUERY_STRING} ^i=stranica1$
RewriteRule ^$ http://www.domen2.com/stranica-nomer-odin/? [R=301,L]

Или так


RewriteCond %{THE_REQUEST} " /\?i=stranica1 "
RewriteRule ^ http://www.domen2.com/stranica-nomer-odin/? [R=301,L]

Еще один вариант. Допустим нужны такие редиректы

/?foo => http://www.domen2.com/page1/

/?bar => http://www.domen2.com/page2/

/?lol => http://www.domen2.com/page3/

Реализовать можно так


RewriteCond %{THE_REQUEST} " (\S+) "
RewriteCond "%1 \
/?foo => /page1/ \
/?bar => /page2/ \
/?lol => /page3/ \
" "^(\S++).*? \1 => (\S+)"
RewriteRule ^ http://www.domen2.com%2? [R=301,L]
kronter:
Спасибо. То что надо

---------- Добавлено 18.12.2015 в 15:03 ----------

Еще вопрос. А почему не работает такой код?

Redirect 301 /add/vyvod.php?str=kvartira http://troks.ru/add/vyvod.php?category=nedvijimost&str=kvartira

Redirect, RedirectMatch это директивы mod_alias.

RewriteCond, RewriteRule директивы mod_rewrite.

mod_alias не позволяет сравнивать с шаблоном GET параметры. Конструкция Redirect 301 /add/vyvod.php?str=kvartira не работает.


RewriteCond %{QUERY_STRING} ^(id=\d++).
RewriteRule ^add/vyvodpodr\.php$ /$0?%1 [R=301,L]

Ставить в самом верху сразу после строки RewriteEngine On


RedirectMatch 301 ^/index/?$ http://mysite.com/

Возможно, вставляли правила в самый конец после других правил.

Попробуйте поставить правила для редиректа выше остальных правил.

Регулярка

_[_e]\('[^']+'\K(?=\))

Замена

, 'stk'

https://regex101.com/r/zH9bQ1/1

Например такой вариант https://regex101.com/r/dS7nT0/7


function spoiler_reverce($spoiler)
{
$regex = '
~
<div\ class="splr-h">[^<]+</div>\s*
(?=<div\ class="splr-b">)
(
<div[^>]*>
(
(?: [^<]+ | <(?!/?div) | (?1) )++
)
</div>
)
~x';

if (is_array($spoiler)) {
$spoiler = '[ssspoiler]'.$spoiler[2].'[/ssspoiler]';
}

return preg_replace_callback($regex, 'spoiler_reverce', $spoiler);
}
siv1987:

RewriteCond %{REQUEST_RULE} !admin

Там надо исправить на

RewriteCond %{REQUEST_URI} !admin

На каждый домен .рф по отдельному правилу


RewriteCond %{HTTP_HOST} ^(?:www\.)?XN--E1AFMKFD\.xn--p1ai$
RewriteRule ^ http://mysite.ru/пример-рф/? [R=302,L]

Тогда так


RewriteCond %{HTTP_HOST} ^(?:www\.)?+(?!xn--)([^.]+)\.([^.]+)$
RewriteRule ^ http://mysite.ru/%1-%2/? [R=302,L]
Всего: 749