Нужна помощь с htaccess

danneo

Честный
Регистрация
13 Ноя 2007
Сообщения
1.527
Реакции
121
Есть адреса:
Код:
городN.site.ru/news/
городN.site.ru/news/list/26/
городN.site.ru/news/1234.html
городN.site.ru/news/show/159.html

Нужно сделать автоматичекое формирование всех ссылок на тех страницах в виде:
Код:
site.ru/news/
site.ru/news/list/26/
site.ru/news/1234.html
site.ru/news/show/154.html
Убрать из ссылки городN - любой город. Субдомен формируется виртуально. Формирование ссылок в коде не исправить, поэтому остается только надежда на htaccess
 
Непонятно,
ссылки формируются городN.site.ru/news/
и вы хотите чтобы по этим ссылкам открывались страницы site.ru/news/?
или вы хотите сделать редирект на site.ru/news/?
 
Есть адреса:
городN.site.ru/news/
городN.site.ru/news/list/26/
городN.site.ru/news/1234.html
городN.site.ru/news/show/159.html

Нужно сделать автоматичекое формирование всех ссылок на тех страницах в виде:
site.ru/news/
site.ru/news/list/26/
site.ru/news/1234.html
site.ru/news/show/154.html
Убрать из ссылки городN - любой город. Субдомен формируется виртуально. Формирование ссылок в коде не исправить, поэтому остается только надежда на htaccess
попробуй
RewriteEngine On
RewriteCond %{http_host} ^(.+)\.domain.tld [nc]
RewriteRule ^(.*)$ Для просмотра ссылки Войди или Зарегистрируйся [R=301,L]
замени название domain.tld на то, что нужно, например site.ru
 
Непонятно,
ссылки формируются городN.site.ru/news/
и вы хотите чтобы по этим ссылкам открывались страницы site.ru/news/?
или вы хотите сделать редирект на site.ru/news/?
Не редирект, а формирование ссылки. Чтобы пользователь и поисковик просматривал новости только по одному пути, на основном домене. Сейчас же все новости дублируются на всех городах. Нужно их сделать только на основном. Причем только новости...
попробуй
замени название domain.tld на то, что нужно, например site.ru
чет не то. не срабатывает ничего
 
чет не то. не срабатывает ничего
вообще не срабатывает или неправильно срабатывает? в апаче расрешено использование htaccess для сайта? проверь на простом примере, скажем запретить-разрешить директори листинг.
 
вообще не срабатывает или неправильно срабатывает? в апаче расрешено использование htaccess для сайта? проверь на простом примере, скажем запретить-разрешить директори листинг.
как формировались, так и есть.
htaccess работает, это CMS, платная

Там есть:
Код:
RewriteBase /
RewriteRule ^(.*)\.(asp|aspx|asa|asax|dll|jsp|fcgi|pl)(.*)$ /404.php
RewriteRule ^(.*)/file/(.*)\.php(.*)$ /404.php
RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
RewriteRule ^(.*)/show-([0-9]+)([\-])?([0-9]+)?\.html$ $1/show.php?itemid=$2&page=$4
RewriteRule ^(.*)/list-([0-9]+)([\-])?([0-9]+)?\.html$ $1/list.php?catid=$2&page=$4
RewriteRule ^(.*)/([A-za-z0-9_\-]+)-([0-9]+)-([0-9]+)\.html$ $1/list.php?catid=$3&catdir=$2&page=$4
RewriteRule ^(.*)/show/([0-9]+)/([0-9]+)?([/])?$ $1/show.php?itemid=$2&page=$3
RewriteRule ^(.*)/show/([0-9]+)([\-])?([0-9]+)?\.html$ $1/show.php?itemid=$2&page=$4
RewriteRule ^(.*)/list/([0-9]+)/([0-9]+)?([/])?$ $1/list.php?catid=$2&page=$3
RewriteRule ^(.*)/([a-z]+)/(.*)\.shtml$ $1/$2/index.php?rewrite=$3
RewriteRule ^(.*)/(.*)\.shtml$ $1/index.php?rewrite=$2
 
как формировались, так и есть.
htaccess работает, это CMS, платная

Там есть:
PHP:
RewriteBase /
...
выложи под хайд/цитату полную версию htaccess с твоими изменениями и примеры (желательно несколько) типа:
что было - что до
есть тестировщики правил
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
можно поиграться с правилами и получить быстрый визуальный результат.
 
Написал вот что:
Код:
RewriteCond %{http_host} ^(.+)\.site.ru/news/ [nc]
^(.+)\.site\.ru/news/$ http://site.ru/news/$1 [R=301,L]
Я немного понял принцип, но все равно, не понимаю эти регулярные выражения. Так у меня работает, как надо. Но только главную категорию, а подкатегории и страницы новости не переобразовывает. Как-то нужно указать правила, чтобы учитывались страницы с адресами:

site.ru/news/list/26/
site.ru/news/show/154.html

Подскажите, пожалуйста, кто разбирается в регулярных выражениях...

Подскажите хотя бы как сделать нисколько условий?
Пишу
PHP:
RewriteCond %{http_host} ^(.+)\.site.ru [AND]
RewriteCond %{REQUEST_URI} ^/news/ [nc]
И сервер выдает ошибку. Если использовать одно из двух условий, то они срабатывают. Параметр [and] ведь вроде так указывается. А не хочет срабатывать. Может чего не так делаю?
 
Назад
Сверху