Вопросы по htaccess

R1
На сайте с 15.02.2009
Offline
45
490

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

сейчас http://сайт.net/photo/rus/page-234.html

хочу чтобы было http://сайт.net/page-234.html

возможно это через htaccess? Буду рад если кто подскажет :popcorn:

dma84
На сайте с 21.04.2009
Offline
168
#1

RewriteRule ^(.*)\/(.*).html$ /$2.html [L,R=301]

A
На сайте с 04.03.2011
Offline
20
#2

dma84, тут, похоже, в обратную сторону хотят

похоже, без перечисления всех папок не обойтись

RF
На сайте с 26.04.2009
Offline
107
#3
rabota1003:
Всем привет, хотел бы узнать как сделать небольшую фичу - есть html сайт и множество страниц на сайте, для удобства я разбросал их в папки, а вопрос в следующем - Что прописать в htaccess, чтобы все страницы сайта не зависимо в какой папке были сразу после осн. домена? т.е.

сейчас http://сайт.net/photo/rus/page-234.html
хочу чтобы было http://сайт.net/page-234.html

возможно это через htaccess? Буду рад если кто подскажет 🍿

Вижу только один вариант (ужасно ресурсоемкий).

RewriteRule ^page-(.*).html$ index.php?page=$1 [L]

А уже в index.php по переменной $_GET['page'] искать в какой папке именно эта страница и инклюдить ее.

C
На сайте с 28.01.2010
Offline
70
#4
rabota1003:

возможно это через htaccess? Буду рад если кто подскажет 🍿

Только если все редиректы прописывать вручную

т.е.

page-134.html -> /photo/page-134.html

page-135.html -> /video/page-134.html

и т.п.

Для автоматизации процесса можно попробовать сделать карту сайта каким-нибудь сервисом, выдрать все линки и написать скрипт, который сгенерит .htaccess со всеми редиректами. Быстрого и простого способа решения нет.

Это - личная подпись. Здесь обычно ставят ссылки на всякие кривые сайты, надеясь получить "жирный бек".
A
На сайте с 04.03.2011
Offline
20
#5

for d in `find . -name '*.html' `; do echo "RewriteRule ${d##*/} ${d##./}"; done

вот это безобразие сгенерит правила для текущей директории. работает в линуксе, может и под cygwin заработает

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