Вопрос по .htaccess

kdv12
На сайте с 05.12.2011
Offline
52
918

Здравствуйте. Может кто поможет с написанием правильного правила для mod_rewrite. Есть правило:

RewriteCond %{SERVER_NAME} ^m\.

RewriteRule (.*) /m/$1 [L]

Нужно чтобы при любом запросе к примеру по адресу m.ufa.site.ru отдавалась соответствующая запросу страница но с папки m. А по запросу ufa.site.ru отдавалась страница уже из корня. Так вот написал правило, но оно не работает. Отдает 500 ошибку. Подскажите где ошибка?

Разработка сайтов любой сложности на 1С-Битрикс. Бесплатные консультации.
IL
На сайте с 20.04.2007
Offline
435
#1


RewriteCond %{HTTP_HOST} ^m\.
RewriteRule (.*) m/$1 [L]

Если будет полный путь (/home/user... ) по тексту выше RewriteBase может потербоваться.

А сама страница есть? В смысле, последующие реврайты точно не нужны? На index.php, например...

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
kdv12
На сайте с 05.12.2011
Offline
52
#2
ivan-lev:
А сама страница есть? В смысле, последующие реврайты точно не нужны? На index.php, например...

Есть еще несколько правил обработки после моего правила (то что в топикстарте). Но при запросе я их не использую, а пытаюсь загрузить страницу m.ufa.site.ru/1.html (файл 1.html существует и расположен в папке m). Но отдается 500 ошибка.

IL
На сайте с 20.04.2007
Offline
435
#3
kdv12:
Но отдается 500 ошибка.

Код из моего сообщения тоже 500 выдаёт?

Вопрос, конечно, дурной.. вставлен в нужное место?

kdv12
На сайте с 05.12.2011
Offline
52
#4
ivan-lev:
Код из моего сообщения тоже 500 выдаёт?

Да.

ivan-lev:
Вопрос, конечно, дурной.. вставлен в нужное место?

Вроде бы в правильное место вставлен) Сразу после RewriteEngine On

---------- Добавлено 29.07.2013 в 17:40 ----------

Если вставить такой код


RewriteCond %{HTTP_HOST} ^m\.
RewriteRule .* m/$1 [L]

то при любом запросе выдается листинг файлов на сервере.

siv1987
На сайте с 02.04.2009
Offline
427
#5
kdv12:
Но отдается 500 ошибка.

В логах что?

kdv12:
Если вставить такой код
то при любом запросе выдается листинг файлов на сервере.

Там же отсоветует ссылка $1, естественно запрос будет "пустой"

kdv12
На сайте с 05.12.2011
Offline
52
#6

В логах вот что:

Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

Как я понимаю здесь проблема вся в зацикленном редиректе.

IL
На сайте с 20.04.2007
Offline
435
#7
kdv12:
Как я понимаю здесь проблема вся в зацикленном редиректе.

Дык, конечно!

Исключить надо редирект для каталога /m/

kdv12
На сайте с 05.12.2011
Offline
52
#8
ivan-lev:
Исключить надо редирект для каталога /m/

Сделал. Все заработало. Спасибо!


RewriteCond %{HTTP_HOST} ^m\.([a-z-]+)\.site\.ru$
RewriteCond %{REQUEST_URI} !^/m/ [NC]
RewriteRule (.*) /m/$1 [L]
AlexandrSG
На сайте с 14.11.2010
Offline
74
#9

А вот если у меня на сайте стоит редирект с www.site.ru на site.ru но, в придачу к этому хочу редиректить устаревшие страницы в нужное место например: site.ru/contact

редиректить на> site.ru/new_contact.

Знает ли кто решение такой задачи?

Консультации, Inside/Outside (/ru/forum/809679) оптимизация/продвижение

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