Правило для .htaccess (переадресация)

юни
На сайте с 01.11.2005
Offline
933
878

Есть сайтег ввв.сайтег.ру, на котором собраны статьи, сгруппированные в алфавитном порядке. Поскольку статей много, они разделены на подразделы вида сайтег.ру/буква/подраздел/статья.html

Что нужно: сохранив навигацию (главная -> подраздел -> статьи) изменить адрес конечных статьей, убрав из них /подраздел/. Т.е., чтобы они физически оставались в папке сайтег.ру/буква/подраздел/, но для пользователя чтобы была передаресация на сайтег.ру/буква/статья.html

Как это реализовать, ничего остального не повредив?

https://searchengines.guru/ru/forum/944108 - прокси-сервис на базе операторов домашнего интернета, сотни тысяч IP-адресов, канал от 20 Мбит
Polimer
На сайте с 01.09.2006
Offline
84
#1

юни, мутно, конечно, объяснил. Но попробуем:

RewriteEngine on

RewriteRule ([a-z])/([^/]+\.html)$ /$1/название_подраздела/$2 [L]

Тогда написав в строке адреса браузера http://site.ru/a/abc.html

сервер отдаст то, что физически находится на в http://site.ru/a/название_подраздела/abc.html

Как-то так. Только "название_подраздела" нужно заменить на его реальное название. Или оно тоже всегда разное? Тогда вообще не понял вопроса.

Программные решения для бизнеса. (http://frontsoft.ru/) На заказ. Дорого.
юни
На сайте с 01.11.2005
Offline
933
#2
Polimer:
Или оно тоже всегда разное?

Да, название всегда разное. Т.е. для раздела "b" есть подразделы "ba", "bk", "bz" и т.д., для раздела "v" - подразделы "va", "ve", "vo", ну и в таком духе.

Один правилом, то бишь, не ограничится?

Ёхан Палыч
На сайте с 07.05.2006
Offline
169
#3
юни:

Один правилом, то бишь, не ограничится?

Ну а как понять из какого подраздела брать статью если есть только данные буква/статья.html ?

Правда, если в названии статьи зашифрован подраздел ("v/va/variant.html"), то есть вариант:

RewriteRule ^([a-z])/([a-z]){1}([a-z]){1}([^/]+\.html)$ $1/$2$3/$2$3$4 [L]
[Удален]
#4

юни, по всем вопросам, касаемых .htaccess можете обращаться на забугорный форум http://www.webmasterworld.com/home.htm, а точнее в разделе http://www.webmasterworld.com/apache/

Там толковые ребята, сделают всё, как попросите, ну и бесплатно, разумеется. :)

Единственное, gmail и большинство иностранных мэйл-сервисов не воспринимают, нельзя пройти регистрацию. Для этого вместо gmail напишите googlemail.

Я делал так.

юни
На сайте с 01.11.2005
Offline
933
#5
Welcome2:
можете обращаться на забугорный форум

Ну, мне легче здесь, конечно. ;)

Ёхан Палыч:
то есть вариант

Эта... а можно расшифровать, что какая команда делает? :)

Вообще, можно сделать так, чтобы адрес вида сайт/буква/какая-то-информация-непонятного-вида-и-длины/файл.html сокращалась до сайт/буква/файл.html?

Т.е. просто убрать ненужный кусок.

Ёхан Палыч
На сайте с 07.05.2006
Offline
169
#6
юни:
Эта... а можно расшифровать, что какая команда делает?

:)

Ну, набираем в адресной строке v/variant.html, RewriteRule разбивает урл на $1="v", $2="v", $3="a", $4="riant.html" и берет документ из $1/$2$3/$2$3$4="v/va/variant.html"

Можно короче: RewriteRule ^([a-z])/([a-z]){2}([^/]+\.html)$ $1/$2/$2$3 [L]

([a-z]){2} - это первые два символа названия статьи (если подкатегория является частью названия статьи).

юни:
Вообще, можно сделать так, чтобы адрес вида сайт/буква/какая-то-информация-непонятного-вида-и-длины/файл.html сокращалась до сайт/буква/файл.html?

Т.е. просто убрать ненужный кусок.

Можно, если этот кусок один и уникальный, а если этих кусков тыщи и информацию о них не передать в урле, то вариантов нет. Двумя символами никак не зашифровать Войну и Мир или какую-то-информацию-непонятного-вида-и-длины.

юни
На сайте с 01.11.2005
Offline
933
#7

Ясненько...

Оке, бум думать. Спасибо.

Ёхан Палыч
На сайте с 07.05.2006
Offline
169
#8

юни, можно слить все файлы в одну папку и делать что угодно.

malls
На сайте с 08.08.2005
Offline
255
#9

юни - ты хочешь невозможного! Понятно что уровень вложенности котируется лучше в сапах и линфидах - НО!

Если в итоговом урле (тот который виден клиенту и соответственно тот, который запрашивает браузер у сервера), содержится только буква и статья, то как ни крутись с mod_rewrite - ты никогда не сможешь объяснить серверу из какого подраздела брать документ. Разве что только сервак будет брать похожий документ из случайно выбранного подраздела - но это не "comme il foute"

Либо у каждой статьи должен быть УНИКАЛЬНЫЙ урл (который статья.html), тогда конечно и на буквы побарабану - можно заставить скрипт найти ее, вне зависимости от папок.

ewg777
На сайте с 04.06.2007
Offline
225
#10

юни, такой вариант не подходит?

Не то.

Можно ли урл в лс или иерархию любой папки "буква"?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий