Страница 1 из 1

Apache + .htaccess

Добавлено: 2010-01-12 15:37:37
kil
Всем привет!!!
Нужно сделать соответсветсвие рускоязычному файлу - английский (/test/хай - file.php) и обратное преобразование (file.php - /test/хай) дабы по адресу
http://www.mydomen1231234.ru/test/хай - незаметно подргужался file.php и далее чтобы при наборе этого файла (http://www.mydomen1231234.ru/test/file.php) - браузер автоматом менял имя http://www.mydomen1231234.ru/test/хай.
В .htaccess прописал вот это - но по каким-то непонятным причинам происходит зацикливание

Код: Выделить всё

AddDefaultCharset utf8

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_URI} (.*)file.php
RewriteRule (.*) www.mydomen1231234.ru/test/хай [R=301]


RewriteCond %{REQUEST_URI} ^\/test\/хай
RewriteRule ^хай$ file.php [L]

</IfModule>
извращался как мог (переменные, форварды), но так и не получилось :(

Re: Apache + .htaccess

Добавлено: 2010-01-12 15:43:39
iye
Может стОит задуматься как обойтись без кирилицы в названии файлов ?

Re: Apache + .htaccess

Добавлено: 2010-01-12 15:51:45
kil
В том то и дело что задание такое! Тем более файл называется file.php - а вот обращение идёт кирилицей
Преобразование http://www.mydomen1231234.ru/test/хай успешно работает, а вот при добавлении обратного идёт построянная рекурсия.
Не пойму как там .htaccess себя ведёт

Re: Apache + .htaccess

Добавлено: 2010-01-13 13:23:34
Volodymyr

Код: Выделить всё

RewriteEngine On
RewriteBase /

RewriteRule ^(test)/(хай)$ file.php
Тебе нужно только правило внутреннего переписывание, а так ты реально делаешь рекурсию.

Re: Apache + .htaccess

Добавлено: 2010-01-13 13:33:23
kil
это прекрасно работает, а теперь нужно чтобы при доступе к file.php - этот файл либо не отдавался, либо в адресной строке переписывался запрос на (test)/(хай)

Re: Apache + .htaccess

Добавлено: 2010-01-13 13:57:21
Volodymyr
Ну так собери все вмести. Если первая часть у тебя работает.

Код: Выделить всё

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} (.*)file.php
RewriteRule (.*) www.mydomen1231234.ru/test/хай [R=301]

RewriteRule ^(test)/(хай)$ file.php

Re: Apache + .htaccess

Добавлено: 2010-01-13 14:15:30
kil
Вот так сделал - всё равно уходит в рекурсию!

Код: Выделить всё

AddDefaultCharset utf8

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /test/

RewriteCond %{REQUEST_URI} (.*)file.php
RewriteRule (.*) http://www.mydomen1231234.ru/test/хай [R=301]

RewriteRule ^хай$ file.php [L]

</IfModule>

Вот что Firefox кричит
Неверное перенаправление на странице

Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.

Re: Apache + .htaccess

Добавлено: 2010-01-13 14:23:07
Volodymyr
А то что написал не работает?

Re: Apache + .htaccess

Добавлено: 2010-01-13 14:31:40
kil
Сделал как ты писал - всё равно тоже самое.
отключил автоматический редирект в опере и просмотрел что каждый раз он поднимает файл .htaccess и по какой-то причине делает редирект на http://www.mydomen1231234.ru/test/хай постоянно, т.е

Код: Выделить всё

RewriteCond %{REQUEST_URI} (.*)file.php
RewriteRule (.*) http://www.mydomen1231234.ru/test/хай [R=301]
игнорируется напрочь, либо он один раз запомнил что REQUEST_URI был file.php и заново срабатывает - делая бесконечное зацикливание.
Вот на этом я и встрял, попытался сделать через переменные окружения, но т.к. .htaccess поднимается заново переменные окружения обнуляются. вот и не пойму как с этим бороться :(

Re: Apache + .htaccess

Добавлено: 2010-01-13 15:02:44
Volodymyr
Смотри тебе надо урл переписать с file.php на http://www.mydomen1231234.ru/test/хай , а test/хай отревратить на файл file.php это [r=301,nc]

Re: Apache + .htaccess

Добавлено: 2010-01-13 15:25:26
kil
И так сделал - ну не хочет он, как ещё можно проверить что если в запросе идёт file.php, то редирект, а если другая х-ня то ничего не делать

Код: Выделить всё

RewriteCond %{REQUEST_URI} (.*)file.php
RewriteRule (.*) http://test1.printsnab.ru/test/хай [R=301,NC]

Re: Apache + .htaccess

Добавлено: 2010-01-13 16:51:24
Volodymyr
Ну в общем то все правильно ты строишь кольцо. Условие 1 перекидывает ан условие а условие 2 на условие 1.

Убирай первое условие и будет все нормально.

Re: Apache + .htaccess

Добавлено: 2010-01-13 17:01:54
kil
%{REQUEST_URI} - если я правильно понял,то это то что мы набрали в строке браузера, т.е

после редиректа %{REQUEST_URI} должен попасть только под последнее правило и поскольку оно c флагом[L] , благополучно подгрузить это с сервера, а вот почему он гоняет его туда-сюда?

Re: Apache + .htaccess

Добавлено: 2010-01-13 17:35:32
Volodymyr
Можешь объяснить зачем переписывать 1 условие?
Вот кто и как узнает что у тебя там "file.php" обработчик, у тебя же ссылка будет типа http://example.com/test/хай

Re: Apache + .htaccess

Добавлено: 2010-01-13 19:20:40
kil
тоже самое говорю начальству, но они говорят, что якобы поисковики помнят ещё старые УРЛы, а они хотят их руссифицировать а потом проиндексировать, а названия файлов менять - говорят геморно. Вообщем тупо пытаюсь выполнить поставленную задачу.

Re: Apache + .htaccess

Добавлено: 2010-01-13 19:58:11
Volodymyr
А вот оно что. Надо подумать. Вообще есть решение и для такого.