Акция!  Домен 34 грн, домен 55 грн, домен  - 200 грн домен  - 65 грн, домен  - 99 грн, домен  - 56 грн!, домен  - 425 грн!
Мы используем cookie-файлы
Для оптимизации работы нашего сайта мы используем cookie-файлы. Продолжая использовать сайт, Вы соглашаетесь с использованием cookie-файлов.
  • RUB
  • USD
  • EUR
  • UAH
Чат техподдержки
Вы являетесь клиентом?
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепр
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 170-15-42  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 630-90-82  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
6 лет
хостинг: нет
домен: нет
htaccess как убрать лишнее в адресной строки?
Есть адрес http://домен/kat.php?kat=что-то , как с помощью htaccess сделать
http://домен/что-то , то-есть убрать kat.php?kat= . Пробовал сотни вариантов, но увы. Думаю где-то так:
RewriteRule ^(.*)/$ /kat.php?kat=$1 [QSA,L]
но не подходит.
Илья
6 лет
хостинг: есть
домен: есть
Для преобразования http://домен/kat/1234/ в http://домен/kat.php?ka... подойдет правило:
RewriteRule ^([^/]+)/([0-9]+)/$ /$1.php?kat=$2 [QSA,L]
где
[^/]+ - один и более символов, кроме /
[0-9]+ - любое целое число
goian
6 лет
хостинг: нет
домен: нет
Илья
6 лет
хостинг: есть
домен: есть
В том примере, который я привел пользователь должен вбить в адресную строку http://домен/kat/1234/, а сервер должен запросить страницу http://домен/kat.php?ka... (пользователь не видит этой ссылки, это внутреннее преобразование) я правильно Вас понял?
goian
6 лет
хостинг: нет
домен: нет
Нет, немного не то, пользователь нажимает на ссылку 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 с гет параметром названия категории.
Илья
6 лет
хостинг: есть
домен: есть
Если я правильно Вас понял, то это делается не через .htaccess, а настройками самого сайта.
goian
6 лет
хостинг: нет
домен: нет
Может я не правильно понимаю функцию RewriteRule. Вообщем как генерировать страницы на многостраничнике лутше для сео. Я думал над 2 вариантами, но пока оба не устраивают. Первый: как на http://otvet.mail.ru у них походу при создании нового вопроса создаеться папка с новой страницей(но это сложновато). Второй: при создании новой темы, передавать инфу на один файл с помощью параметров, но такие урлы не очень красивые и плохи для оптимизации, поэтому думал что функция RewriteRule меняет урл с domen/index?page=pryroda на domen/pryroda. Или так нельзя?
Alik
6 лет
хостинг: нет
домен: есть
>при создании нового вопроса создаеться папка с новой страницей(но это сложновато)
Ничего подобного. Страницы такого сервиса просто не могут быть статичными, поэтому формируются скриптом, а адрес страницы при помощи 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
6 лет
хостинг: нет
домен: нет
Спасибо большое, уже все понял :)
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

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

Тема закрыта по истечению срока давности.