Помогите с редиректом директории на субдомен в htaccess

pookkalo

Создатель
Регистрация
5 Фев 2013
Сообщения
27
Реакции
10
Итак суть проблемы: есть директория на сайте под управлением icms2 в которой стоит сторонний компонент, адрес Для просмотра ссылки Войди или Зарегистрируйся
Директорию требуется удалить, а сторонний компонент перенести на адрес Для просмотра ссылки Войди или Зарегистрируйся, т.к. по адресу Для просмотра ссылки Войди или Зарегистрируйся будет работать один из компонентов самой icms2. Нужно сделать 301 редирект для всех файлов .php по адресу Для просмотра ссылки Войди или Зарегистрируйся, чтобы получалось следующее:
Для просмотра ссылки Войди или Зарегистрируйся -> Для просмотра ссылки Войди или Зарегистрируйся

В .htaccess в корне Для просмотра ссылки Войди или Зарегистрируйся добавляю следующие строчки:
RewriteBase /
RewriteCond %{REQUEST_URI} /component/(.*)\.php$
RewriteRule ^(.*)$ Для просмотра ссылки Войди или Зарегистрируйся [L,R=301]
На тестовом сайте с чистым .htaccess всё работает отлично, но если добавляю эти строчки в конец .htaccess от icms2 пишет 404.
Подскажите пожалуйста, что я делаю не так?

htaccess icms2 прилагаю:
Скрытое содержимое доступно для зарегистрированных пользователей!
 
Подскажите пожалуйста, что я делаю не так?
Добавляете не в то место файла.
Добавьте строки перед блоком правил:
Код:
# Engine routing
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php [L]
 
Для просмотра ссылки Войди или Зарегистрируйся
в
Для просмотра ссылки Войди или Зарегистрируйся
Магия какая-то. Значит у вас там не do.php...
попробуйте явно указать скрипт...
Код:
RewriteCond %{REQUEST_URI} /component/do\.php$
RewriteRule component/do\.php https://old.site.ru/do.php [L,R=301]
 
Да, do.php был для примера, т.к. файлов .php очень много и требуется, чтобы все файлы по запросу /component/*.php?param1=1&param2=2 перекидывались на Для просмотра ссылки Войди или Зарегистрируйся*.php?param1=1&param2=2
Т.к. в будущем по этому адресу будут ссылки типа Для просмотра ссылки Войди или Зарегистрируйся
Просто пару десятков .php файлов прописывать мне кажется не есть правильно...
 
Да, do.php был для примера, т.к. файлов .php очень много и требуется, чтобы все файлы по запросу /component/*.php?param1=1&param2=2 перекидывались на Для просмотра ссылки Войди или Зарегистрируйся*.php?param1=1&param2=2
Т.к. в будущем по этому адресу будут ссылки типа Для просмотра ссылки Войди или Зарегистрируйся
Просто пару десятков .php файлов прописывать мне кажется не есть правильно...
Тогда не понятно почему происходит вот такая штука
В этом случае переадресация происходит не так:
Для просмотра ссылки Войди или Зарегистрируйся
в
Для просмотра ссылки Войди или Зарегистрируйся
PHP файлы в папке component физически существуют? Или как-то генерятся при помощи index.php ?
Попробуем правило перефразировать, но суть останется такой же как в Вашем примере:
Код:
RewriteCond %{REQUEST_URI} /component/(.+\.php)$
RewriteRule .* https://old.site.ru/component/%1 [L,R=301]
 
PHP файлы в папке component физически существуют?
Нет, даже папки уже нет.

Золотой вы человек! Благодарю Вас, с последним примером всё работает отлично!
<-------------- добавлено через 1536 сек. -------------->
:beer:
 
Назад
Сверху