[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите проигнорировать ЧПУ
Konung
Здравствуйте! Впервые пришлось столкнуться с CEO, поэтому опыта работы с htaccess не было (да и с регулярными выражениями, признаюсь, редко сталкивался). Два дня поисков по сети помогли родить примерно следующий код:

Options +FollowSymlinks

RewriteEngine On

#Отсекаем дубль технического домена
RewriteCond %{REQUEST_URI} ^(.*).fozzyhost.com$ [NC]
RewriteRule ^(.*)$ http://mysite.ru

#Отсекаем дубль "http://www.mysite.ru/index.php"
RewriteRule index.php http://mysite.ru

# Отсекаем ведущие "WWW."
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1

# Отсекаем расширение ".html"
RewriteCond %{REQUEST_URI} ^(.*).html$ [NC]
RewriteRule ^(.*)$ http://mysity.ru/%1

# Отсекаем финишные "/"
RewriteCond %{REQUEST_URI} ^(.*)[/]$ [NC]
RewriteRule ^(.*)$ http://mysite.ru/%1

# ОСНОВНОЙ REDIRECT
RewriteCond %{HTTP_HOST} ^[^www\.].*$
RewriteRule ^/?([A-Za-z0-9\-_/]+)/?$ /index.php?article=$1
# [OR]

Код вроде бы полностью решает задачи, которые поставил сеошник, но....
Сайт сделан на самописной админке, обращение к которой производится по адресу:
http://mysity.ru/admin или http://mysity.ru/admin/index.php
Ну и дальнейшая работа с админкой идет через параметризованные URL'ы.
Получившийся у меня код htaccess'a, естественно, блокирует доступ к админке, преобразуя ее адрес в ЧПУ.
Помогите, пожалуйста, решить следующую задачу:
Как преобразовать мой htaccess таким образом, чтобы если в %{REQUEST_URI} содержится подстрока "admin", он игнорировал все преобразования и оставлял нетронутым параметризованный URL.
Если укажете на еще какие-то косяки в моем htaccess'е (это мое первое творение на сей счет), так же буду признателен .
Заранее благодарен.
keinhoj
через RewriteCond
Konung
В том-то и вопрос, как сформулировать условие для RewriteCond, чтобы код
# ОСНОВНОЙ REDIRECT
RewriteCond %{HTTP_HOST} ^[^www\.].*$
RewriteRule ^/?([A-Za-z0-9\-_/]+)/?$ /index.php?article=$1

игнорировался, если в %{REQUEST_URI} содержится подстрока "admin".
Konung
Ну, если кому интересно... проблема решилась следующим образом:
Поскольку префиксы "www." я и так экранирую, то в моем случае проверка условия
RewriteCond %{HTTP_HOST} ^[^www\.].*$
не имеет смысла.
Соответственно, проблема решилась следующим образом:
# ОСНОВНОЙ REDIRECT
#RewriteCond %{HTTP_HOST} ^[^www\.].*$
RewriteCond %{REQUEST_URI} ^[^admin].*$ [NC]
RewriteRule ^/?([A-Za-z0-9\-_/]+)/?$ /index.php?article=$1

В моем случае, пришлось еще переименовать головной модуль админки из index.php в любое другое название, например administrator.php, в противном случае я сам же грохал его директивой
#Отсекаем дубль "http://www.mysite.ru/index.php"
RewriteRule index.php http://mysite.ru

Большое спасибо пользователю Ganzal, который, указав путь решения, жестко обругал меня за то, что я сеошные редиректы делаю в htaccess. А где интересно их принято делать (аппач стоит у хостера и конфигурировать его я, имхо, не могу)?
GET
Цитата
Код вроде бы полностью решает задачи, которые поставил сеошник, но....


Интересно как сеошник обосновал ЧПУ прирост?

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.