Урл с "?" отдают 404, а что если с них сделать редирект на без "?"

P
На сайте с 06.01.2009
Offline
592
580

Всем привет.

На одном сайте в движке сделано так, что если урл содержит знак "?" - то отдается ответ серверу "404". Вопрос, а что если сделать редирект с урл вида www.site.ru/straniza5?slovo на www.site.ru/straniza5

Заметил, что при пересылке урл клиенту по вайберу или вотсапу к нему дописывается кусок "?всякая_фигня".

В результате получатель урл не может открыть.

Прошу прощения, просто под вечер очень устал и не могу сообразить...

Спасибо

D
На сайте с 07.11.2000
Offline
219
#1

В этом случае логично убирать строку запроса.

В nginx примерно будет так:

if ($query_string ~ "(.+)"){
rewrite ^(.*)$ $1? permanent;
}
P
На сайте с 06.01.2009
Offline
592
#2
Dimka:
В этом случае логично убирать строку запроса.

В nginx примерно будет так:

if ($query_string ~ "(.+)"){
rewrite ^(.*)$ $1? permanent;
}

Я сделал так. Так не очень коряво? php


// $tekurl-----straniza5?naborslov

$prov2 = substr_count($tekurl, "?");
if ($prov2>0) {
$bbt=explode("?", $tekurl);
$newurl = $bbt[0];
header('HTTP/1.1 301 Moved Permanently');
header("Location: http://www.site.ru/$newurl");
exit();
}
L
На сайте с 10.02.2015
Offline
222
#3

Зачем нагружать php, если это можно сделать на веб-сервере?

П.С.

Коряво:

имена переменных

header("Location: http://www.site.ru/$newurl", true, 301);

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