Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как запретить символы "?" и "&" в конце URL?
 
 автор: mtox   (13.09.2009 в 20:20)   письмо автору
 
 

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

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

Нужно, чтобы при произвольном вводе в адресной строке символов "?" и "&" в URL страниц либо отдавалась 404, либо шел 301-й редирект на реальную страницу. Например, "реальный" адрес страницы http://example.com/123/ и если ввести http://example.com/123/? или http://example.com/123? или http://example.com/123/?1a то происходит редирект на http://example.com/123/ или отдается 404 ошибка. То есть, чтобы не было дублей.

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

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

Предполагаю, что это можно сделать с помощью mod_rewrite, но как именно?

  Ответить  
 
 автор: heed   (14.09.2009 в 01:16)   письмо автору
 
   для: mtox   (13.09.2009 в 20:20)
 

>"красивые" урлы. Таким образом, символы "?" и "&" в URL используются только в администраторском раздел

Это не так.
Когда красивые запросы заменяются на некрасивые, снова выполняется запрос, о котором ничего не знает браузер, но сервер ещё раз всё выполняет так как-будто, это всё исходило от браузера, в том числе повторные проверку и (если совпадёт)выполнение Rewrite-правил

  Ответить  
 
 автор: serjinio   (18.09.2009 в 08:43)   письмо автору
 
   для: mtox   (13.09.2009 в 20:20)
 

RewriteCond %{QUERY_STRING} ^.*/ 
RewriteRule .* - [R=404,L]

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования