DLE url перевести в нижний регистр и учесть хеш при регистрации нового пользователя

A8
На сайте с 15.06.2013
Offline
21
1725

Здравствуйте!

Возникла проблема, связана она с переводом url к нижнему регистру: при регистрации нового пользователя его хеш также приводится с нижнему регистру, что не есть верно.

Скажите, как решить эту проблему?

P.S. Если оставить так как есть, тогда при переходе по ссылке, которая приходит на почту, после подтверждения регистрации возникает ошибка "ID not valid"

сейчас в index.php в начало страницы вставлен код:


if($_SERVER['REQUEST_URI'] != strtolower($_SERVER['REQUEST_URI'])){
header('Location: http://'.$_SERVER['HTTP_HOST'].strtolower($_SERVER['REQUEST_URI']), true, 301);
exit();
}

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

Спасибо за ответ.

siv1987
На сайте с 02.04.2009
Offline
427
#1

А нахрена нужно переводить урлы в нижний регистр? Адреса должны быть такие какие они есть. Ну добавьте в исключиние uri c index.php, это обычно все служебные ссылки.

A8
На сайте с 15.06.2013
Offline
21
#2
siv1987:
А нахрена нужно переводить урлы в нижний регистр? Адреса должны быть такие какие они есть. Ну добавьте в исключиние uri c index.php, это обычно все служебные ссылки.

Как добавить? Если бы знал, вопрос бы не задавал. Нужно для того, чтобы не возникали дубли.

дани мапов
На сайте с 06.09.2012
Offline
204
#3


$arr = array(
'/index.php?do=register',
'/index.php?do=feedback',
);

if (!in_array($_SERVER['REQUEST_URI'], $arr)) {
if($_SERVER['REQUEST_URI'] != strtolower($_SERVER['REQUEST_URI'])){
header('Location: http://'.$_SERVER['HTTP_HOST'].strtolower($_SERVER['REQUEST_URI']), true, 301);
exit();
}
}
Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
A8
На сайте с 15.06.2013
Offline
21
#4
дани мапов:

$arr = array(
'/index.php?do=register',
'/index.php?do=feedback',
);

if (!in_array($_SERVER['REQUEST_URI'], $arr)) {
if($_SERVER['REQUEST_URI'] != strtolower($_SERVER['REQUEST_URI'])){
header('Location: http://'.$_SERVER['HTTP_HOST'].strtolower($_SERVER['REQUEST_URI']), true, 301);
exit();
}
}

к сожалению не хочет работать, при переходе по ссылке письма:

index.php?do=register&doaction=validating&id=u3ryaw1lcnx8c3ryaw1lcjy3qg1hawwucnv8fddlzjmwngy2nmu3nzvizty5mzgzotcwnwmzmgvjowfifhw2ztyxzjjjzjg0ztk3mtkxn2jizddimwu3zja1yzaxma%3d%3d

весь хеш код был приведен к нижнему регистру.

totamon
На сайте с 12.05.2007
Offline
437
#5

Alliance87, а где у вас в ссылке верхний регистр? и что за "%3d%3d" в конце ссылки?

Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
дани мапов
На сайте с 06.09.2012
Offline
204
#6
Alliance87:
к сожалению не хочет работать, при переходе по ссылке письма:

index.php?do=register&doaction=validating&id=u3ryaw1lcnx8c3ryaw1lcjy3qg1hawwucnv8fddlzjmwngy2nmu3nzvizty5mzgzotcwnwmzmgvjowfifhw2ztyxzjjjzjg0ztk3mtkxn2jizddimwu3zja1yzaxma%3d%3d


весь хеш код был приведен к нижнему регистру.

Для этой ссылки тогда так


if (strpos($_SERVER['REQUEST_URI'], '/index.php?do=register') === FALSE) {
if($_SERVER['REQUEST_URI'] != strtolower($_SERVER['REQUEST_URI'])){
header('Location: http://'.$_SERVER['HTTP_HOST'].strtolower($_SERVER['REQUEST_URI']), true, 301);
exit();
}
}
siv1987
На сайте с 02.04.2009
Offline
427
#7
Нужно для того, чтобы не возникали дубли.

Какие дубли, откуда? Насколько мне известно чпу у дле в нижнем регистре.

... AND ! strpos($_SERVER['REQUEST_URI'], 'index.php')

A8
На сайте с 15.06.2013
Offline
21
#8
totamon:
Alliance87, а где у вас в ссылке верхний регистр? и что за "%3d%3d" в конце ссылки?

Я ж Вам говорю, что сейчас код, который я написал выше приводит все к нижнему регистру, в том числе и хеш-код при регистрации нового пользователя (а это не есть верно, так как новый пользователь не сможет зарегистрироваться по левому хешу), нужно исключить страницы, такие как регистрация, отправить персональное сообщение и тд, а все остальные в том числе и статические, желательно, чтобы были в нижнем регистре.

---------- Добавлено 25.10.2015 в 14:08 ----------

siv1987:
Какие дубли, откуда? Насколько мне известно чпу у дле в нижнем регистре.

... AND ! strpos($_SERVER['REQUEST_URI'], 'index.php')

Статические страницы не в нижнем регистре у дле к сожалению, то есть там можно написать и создать новую страницу с большой буквы и прокатит, не приведется к нижнему. Смотря какая версия возможно DLE, но вообще там это не предусмотрено.

Можно прислать решение полное?

Спасибо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий