siv1987

siv1987
Рейтинг
427
Регистрация
02.04.2009

Вот это это еще

preg_match("/[\xd0\xb0-\xd1\x8f\xd0\x90-\xd0\xaf]/u", $utf8Tag)

можно заменить на

preg_match("/[\300-\337][\200-\277]/", $utf8Tag)

Вообщето да, нужно не добавлять, а заменить


$tag = iconv( "UTF-8", "windows-1251//IGNORE", $tag );

на


$utf8Tag = $tag;
$tag = iconv( "UTF-8", "windows-1251//IGNORE", $tag );

if(preg_match("/[\xd0\xb0-\xd1\x8f\xd0\x90-\xd0\xaf]/u", $utf8Tag)){
header('Location: '.$config['http_home_url'].'tags/'.urlencode($tag).'/', true, 301);
exit;
}

Во втором способе аналогично. Добавляем $utf8Tag = $tag; и в условие заменяем $tag на $utf8Tag

и exit; после header не забудьте

Damon24:
Не помогло, кириллические теги не переводит в urlencode, просто исчезла циклическая переадресация.

Я с именем переменной немного ошибся, еще раз скопируйте код

Как вариант, строчку $tag = iconv( "UTF-8", "windows-1251//IGNORE", $tag );

Заменить на


$utf8Tag = $tag;
$tag = iconv( "UTF-8", "windows-1251//IGNORE", $tag );

if(preg_match("/[\xd0\xb0-\xd1\x8f\xd0\x90-\xd0\xaf]/u", $utf8Tag)){
header('Location: '.$config['http_home_url'].'tags/'.urlencode($tag).'/', true, 301);
exit;
}

Более правильно наверное будет заюзать такую вот функцию, так как в utf8 может быть не только символьный класс /[а-я]/i

где-то в functions.php добавить


function isUTF8($str){
/*
* @see http://en.wikipedia.org/wiki/UTF-8#Description
*/
# Four-byte chars
if(preg_match("/([\360-\364])([\200-\277])([\200-\277])([\200-\277])/", $str))
return true;

/* Three byte chars */
if(preg_match("/([\340-\357])([\200-\277])([\200-\277])/", $str))
return true;

/* Two byte chars */
if(preg_match("/([\300-\337])([\200-\277])/", $str))
return true;

return false;
}

строчку $tag = iconv( "UTF-8", "windows-1251//IGNORE", $tag );

заменить на


$utf8Tag = $tag;
$tag = iconv( "UTF-8", "windows-1251//IGNORE", $tag );

if(isUTF8($utf8Tag)){
header('Location: '.$config['http_home_url'].'tags/'.urlencode($tag).'/', true, 301);
exit;
}

А чем вас 76ms не устраивает? Это 0.07s, что довольно не плохо. У вас дольше рендеринг в браузере может происходить, чем генерируется страница.

anxious:
На этом сайте рассказывают как скрыть стандартный вход в админку, и в секунду я попадаю в его "скрытую" админку.

Там стандартный редирект, а редактировать нужно /wp-admin/

http://wordpress.org/support/topic/how-to-change-the-admin-url-or-wp-admin-to-secure-login

https://www.google.ru/search?client=opera&rls=ru&q=change+wp-admin

рецидивист:
Разница в десятки раз - это слишком много. Я предпологаю, что на протяжении 500 ms ModX что-то там себе думает.

Ну конечно, это же динамически сгенерированная страница, как вы по другому хотели? Т.е. сервер делает какие-то запросы, что-то обрабатывает, поэтому сравнивать в данном случае с статикой абсолютно не правильно. Хотите те же результаты - переведите все в статику и удалите движок. И будет вам 8ms.

anxious:
RewriteRule не отрабатывает
anxious:
Нашел в интернете.

Потому и не отрабатывает.

Что мешает https://www.google.ru/search?client=opera&rls=ru&q=wp-admin+%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest?

feelfreeze:
Например, старый раздел /brand_1/*.html переезжает в раздел /brand_2/*.html

Redirect 301 /brand_1/ /brand_2/

G-and-Y:
Какая разница между этими 2 способами?

Ну тут и так понятно в чем разница - первый способ использует mod_rewrite, второй - mod_setenvif. Какой лучше? Хз. Тоже самое что лучше - теплое или мягкое?..

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

Всего: 6568