Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как запретить символы "?" и "&" в конце URL?
Форумы портала PHP.SU » Серверное администрирование » Apache и другие веб-серверы » Как запретить символы "?" и "&" в конце URL?

Страниц (1): [1]
 

1. mtox - 13 Сентября, 2009 - 18:56:12 - перейти к сообщению
Здравствуйте.

Есть блог на Wordpress. C помощью mod_rewrite в htaccess включены "красивые" урлы.

Таким образом, символы "?" и "&" в URL используются только в администраторском разделе (по адресу example.com/wp-admin/ и по адресу example.com/wp-login.php). Остальные страницы открываются как http://example[dot]com/pagenumber/ , категории http://example[dot]com/category/categoryname/ .

Нужно, чтобы при произвольном вводе в адресной строке символов "?" и "&" в конце URL страниц либо отдавалась 404, либо шел редирект на реальную страницу.

Например, "реальный" адрес страницы http://example[dot]com/123/ и если ввести http://example[dot]com/123/?1 или http://example.com/123/? или даже http://example.com/123? , то происходит редирект (301) на http://example[dot]com/123/ или отдается 404 ошибка. То есть, чтобы не было дублей.

При этом, нужно сделать исключениями все адреса, начинающиеся на example.com/wp-admin/ и example.com/wp-login.php (т.е. по этим адресам символы "?" и "&" использовать можно).

Как это сделать?

Насколько я понимаю, сделать это можно с помощью mod_rewrite (apache), но как?
2. Ch_chov - 13 Сентября, 2009 - 19:22:02 - перейти к сообщению
Всё что находится после ? передается в скипт ввиде переменной $_SERVER['QUERY_STRING']

 

Powered by ExBB FM 1.0 RC1