• UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепропетровск
  • +38(062) 210-24-93  Донецк
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 449-04-21  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 007-72-35  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

SEO. htaccess как убрать лишнее в адресной строки?

Форумы SEO htaccess как убрать лишнее в адресной строки?
goian
29.05.2013 02:13
хостинг: нет
домен: нет
htaccess как убрать лишнее в адресной строки?
Есть адрес http://домен/kat.php?kat=что-то , как с помощью htaccess сделать
http://домен/что-то , то-есть убрать kat.php?kat= . Пробовал сотни вариантов, но увы. Думаю где-то так:
RewriteRule ^(.*)/$ /kat.php?kat=$1 [QSA,L]
но не подходит.
Илья
29.05.2013 12:04
хостинг: есть
домен: есть
Для преобразования http://домен/kat/1234/ в http://домен/kat.php?ka... подойдет правило:
RewriteRule ^([^/]+)/([0-9]+)/$ /$1.php?kat=$2 [QSA,L]
где
[^/]+ - один и более символов, кроме /
[0-9]+ - любое целое число
goian
29.05.2013 12:56
хостинг: нет
домен: нет
Илья
29.05.2013 13:19
хостинг: есть
домен: есть
В том примере, который я привел пользователь должен вбить в адресную строку http://домен/kat/1234/, а сервер должен запросить страницу http://домен/kat.php?ka... (пользователь не видит этой ссылки, это внутреннее преобразование) я правильно Вас понял?
goian
29.05.2013 16:51
хостинг: нет
домен: нет
Нет, немного не то, пользователь нажимает на ссылку http://домен/kat.php?ka... после чего адрес должен поменяться на http://домен/1 . То-есть с главной страницы можно перейти на одну с категорий по ссылке http://домен/kat.php?ka... где 1 - это название категории, он попадает на страницу http://домен/kat.php?ka... , после чего она превращается на http://домен/1 с параметром kat=1. Еще раз: нажав на http://домен/kat.php?ka... попадаем на http://домен/1 с гет параметром названия категории.
Илья
29.05.2013 17:46
хостинг: есть
домен: есть
Если я правильно Вас понял, то это делается не через .htaccess, а настройками самого сайта.
goian
29.05.2013 20:15
хостинг: нет
домен: нет
Может я не правильно понимаю функцию RewriteRule. Вообщем как генерировать страницы на многостраничнике лутше для сео. Я думал над 2 вариантами, но пока оба не устраивают. Первый: как на http://otvet.mail.ru у них походу при создании нового вопроса создаеться папка с новой страницей(но это сложновато). Второй: при создании новой темы, передавать инфу на один файл с помощью параметров, но такие урлы не очень красивые и плохи для оптимизации, поэтому думал что функция RewriteRule меняет урл с domen/index?page=pryroda на domen/pryroda. Или так нельзя?
Alik
29.05.2013 20:50
хостинг: нет
домен: есть
>при создании нового вопроса создаеться папка с новой страницей(но это сложновато)
Ничего подобного. Страницы такого сервиса просто не могут быть статичными, поэтому формируются скриптом, а адрес страницы при помощи mod_rewrite (или чего-то вроде этого, в зависимости от того, каким HTTP-сервером они пользуются) из человекопонятного (который Вы видите в своей адресной строке при обращении к сервису) превращается в запрос к скрипту, однако этого преобразования Вы не видите, так как происходит оно внутри сервера.

Из сообщений выше я не совсем понял, чего именно Вы хотите и почему Вас не устроила директива, которую предложил Илья, но предположу, что Вы хотите адрес вида domain.example/12345 либо domain.example/kat/12345.
В первом случае подойдет следующий вариант:

RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]+)$ kat.php?kat=$1 [L,QSA]

В данном случае по запросу domain.example/12345 сервер будет исполнять запрос domain.example/kat.php?kat=12345.
Если Вам больше подходит второй вариант, то выглядеть он будет так:

RewriteEngine On
RewriteBase /
RewriteRule ^kat/([0-9]+)$ kat.php?kat=$1 [L,QSA]

В данном случае по запросу domain.example/kat/12345 сервер будет исполнять запрос domain.example/kat.php?kat=12345

Обратите внимание, в обоих случаях в конце нет слеша, а это значит, что запросы domain.example/12345/ и domain.example/kat/12345/ соответственно возвратят ошибку 404.
Можно было бы, конечно, сразу прописать следом и вариант со слешем, однако в таком случае Ваш контент будет иметь по одному дубликату на каждую страницу, что не очень хорошо для поисковых систем, которые будут воспринимать страницы-дубликаты как абсолютно разные единицы контента. В таком случае, на мой взгляд, лучше всего перенаправить посетителя, набравшего адрес со слешем в конце запроса на соответствующую страницу, но уже без слеша в конце. Делается это так:

RewriteRule ^([0-9-]+)/$ $1 [R=301,L,NE] (для первого варианта)
RewriteRule ^kat/([0-9-]+)/$ kat/$1 [R=301,L,NE] (для второго варианта)

Указать данную директиву нужно после RewriteEngine и RewriteBase (в смысле, не именно под этими директивами, но не ранее и в том блоке, к которому они относятся).
goian
29.05.2013 22:16
хостинг: нет
домен: нет
Спасибо большое, уже все понял :)
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

Если вы уже зарегистрированы Вам необходимо войти на форум.

Тема закрыта по истечению срока давности.
Горячая линия
(044)
392 74 33
другие города