|
|
|
| Здравствуйте.
Есть блог на 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, но как именно? | |
|
|
|
|
|
|
|
для: mtox
(13.09.2009 в 20:20)
| | >"красивые" урлы. Таким образом, символы "?" и "&" в URL используются только в администраторском раздел
Это не так.
Когда красивые запросы заменяются на некрасивые, снова выполняется запрос, о котором ничего не знает браузер, но сервер ещё раз всё выполняет так как-будто, это всё исходило от браузера, в том числе повторные проверку и (если совпадёт)выполнение Rewrite-правил | |
|
|
|
|
|
|
|
для: mtox
(13.09.2009 в 20:20)
| |
RewriteCond %{QUERY_STRING} ^.*/
RewriteRule .* - [R=404,L]
|
| |
|
|
|