[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Мод реврайт на localhost apache linux debian
linf
есть адрес: http://doska.localhost/
есть физический адрес, /var/www/doska

RewriteEngine on
RewriteCond %{HTTP_HOST} ^doska\.localhost$ [NC]
RewriteCond %{REQUEST_URI} !^/doska/$ [NC]
RewriteRule (.*) /doska/ [L]


Пробовал запихивать .htaccess как в корневую директорию /var/www , так и в саму подпапку. Толку ноль.

Что я делаю не так?



Спустя 1 час, 47 минут, 35 секунд (15.12.2011 - 23:20) killer8080 написал(а):
linf
тебе нужен внешний редирект, или внутренний?
Если внешний с http://doska.localhost/ на http://doska.localhost/doska/
то так
RewriteEngine on
RewriteCond %{HTTP_HOST} ^doska\.localhost$ [NC]
RewriteCond %{REQUEST_URI} !^/doska/ [NC]
RewriteRule (.*) /doska/ [R=301,L]

если внутренний реврайт, то так
RewriteEngine on
RewriteCond %{HTTP_HOST} ^doska\.localhost$ [NC]
RewriteCond %{REQUEST_URI} !^/doska/ [NC]
RewriteRule (.*) doska/ [L]


PS не надо в регулярке на request uri ставить ограничение в конце user posted image

Спустя 15 минут, 2 секунды (15.12.2011 - 23:35) linf написал(а):
не работает перебрасывает на http://www.doska.localhost/ и странице не видно...
решил писать код а тестировать на сервере, печально но всеже ((

вопрос №2 как сделать что бы русские буквы можно было использовать в ссылках?

Для латинских букв работает
([a-zA-Z0-9_-]+)

пробовал так ставить русские не хочет (((
([а-яА-Яa-zA-Z0-9_]*)

Что делать?

Спустя 2 минуты, 58 секунд (15.12.2011 - 23:38) Игорь_Vasinsky написал(а):
Цитата
вопрос №2 как сделать что бы русские буквы можно было использовать в ссылках?


biggrin.gif ну если это латинский - a-z, то а-яё наверно и есть кирилица?

Спустя 4 минуты, 51 секунда (15.12.2011 - 23:43) killer8080 написал(а):
linf
давай по порядку, какой вариант пробовал? Куда ложил .htaccess? В корень? Или в папку?
Цитата (linf @ 15.12.2011 - 22:35)
не работает перебрасывает на http://www.doska.localhost/ и странице не видно...

Отрабатывает канонизация. Значит либо в корне сайта лежит .htaccess, в котором это прописано, либо в конфигах апача. Что за сервер?

Спустя 3 минуты, 7 секунд (15.12.2011 - 23:46) linf написал(а):
killer8080 apache 2 на debian linux...

А по второму вопросу, как сделать что бы кирилица работала, дописывание русских букв никчему не приводит, если они в ссылке, то всеравно 404

Спустя 3 минуты, 36 секунд (15.12.2011 - 23:50) killer8080 написал(а):
linf
я задал вполне конкретные вопросы
Цитата (killer8080 @ 15.12.2011 - 22:43)
давай по порядку, какой вариант пробовал? Куда ложил .htaccess? В корень? Или в папку?


Цитата (linf @ 15.12.2011 - 22:46)
А по второму вопросу, как сделать что бы кирилица работала, дописывание русских букв никчему не приводит, если они в ссылке, то всеравно 404

разберись сначала с одной проблемой, потом решай другую. Они ведь могут быть взаимосвязаны wink.gif

Спустя 13 минут, 3 секунды (16.12.2011 - 00:03) linf написал(а):
killer8080
1. Как не странно при размещении что в корне что в этой папке эффект одинаковый.

2. Не думаю что они связаны, так как пробую напрямую делать на удаленом сервере. Там все работает отлично только если есть в ссылке русские тогда возникает 404

Спустя 8 минут, 47 секунд (16.12.2011 - 00:11) killer8080 написал(а):
Цитата (linf @ 15.12.2011 - 23:03)
1. Как не странно при размещении что в корне что в этой папке эффект одинаковый.

Если удалить все хтэксесы и набрать http://doska.localhost, все равно кинет на http://www.doska.localhost?
Цитата (linf @ 15.12.2011 - 23:03)
2. Не думаю что они связаны, так как пробую напрямую делать на удаленом сервере. Там все работает отлично только если есть в ссылке русские тогда возникает 404

.htaccess нужно сохранить в utf-8, у тебя он наверно в виндовой кодировке.

Спустя 54 минуты, 49 секунд (16.12.2011 - 01:06) linf написал(а):
Цитата
Если удалить все хтэксесы и набрать http://doska.localhost, все равно кинет на http://www.doska.localhost?

затер файл, эфект тот же, дописывает www

.htaccess нужно сохранить в utf-8, у тебя он наверно в виндовой кодировке. 

Конечно нет! все в utf-8.

:(
Вот так выглядит преобразование на удаленном сервере:
Русский текст тестирую только в первой замене пока.
RewriteRule ^([а-яА-Яa-zA-Z0-9_-]*)\/{0,1}([a-zA-Z0-9_-]*)\/{0,1}([a-zA-Z0-9_-]*)\/{0,1}([a-zA-Z0-9_-]*)\/{0,1}$ http://www.site.ru/doska/index.php?city=$1&category=$2&podcategory=$3&type=$4&a mp;%{QUERY_STRING}




Спустя 3 часа, 1 минута, 19 секунд (16.12.2011 - 04:08) linf написал(а):
Первый вопрос снят, обойдусь пока без переадресации.
... но ...
Как быть с русскими буквами?

К сему моменту, удалось выяснит следуюущее, данный код:

RewriteRule ^([а-яА-Я0-9_-]*)\/{0,1}([a-zA-Z0-9_-]*)\/{0,1}([a-zA-Z0-9_-]*)\/{0,1}([a-zA-Z0-9_-]*)\/{0,1}$ /doska/index.php?city=$1&category=$2&podcategory=$3&type=$4&%{QUERY_STRING}


позволяет использовать только до 4х разных русских буквы, или много, но одинаковых:

например ссылки вида:
http://localhost/doska/пппп/test/test/test
http://localhost/doska/аня/test/test/test
Работают!

А вот: http://localhost/doska/вася/test/test/test
Уже пишет 404:

The requested URL /doska/вася/test/test/test was not found on this server.

Спустя 19 часов, 36 минут, 47 секунд (16.12.2011 - 23:44) linf написал(а):
Решение нашел сам,
всем спасибо за помощь wink.gif

Спустя 2 минуты, 57 секунд (16.12.2011 - 23:47) Zerstoren написал(а):
Тогда напишите его.
Не надо все держать в себе)

Спустя 6 минут, 32 секунды (16.12.2011 - 23:54) Игорь_Vasinsky написал(а):
да ну видно что кодировка. видимо всё таки файл в левой был.

Спустя 4 дня, 22 часа, 46 минут, 53 секунды (21.12.2011 - 22:41) linf написал(а):
Цитата (Игорь_Vasinsky @ 17.12.2011 - 00:54)
да ну видно что кодировка. видимо всё таки файл в левой был.

Не будьте так самоуверены, с кодировкой было все ок.
Просто перечислил все русские буквы в регулярном выражении, вместо (а-яА-Я) написал (абвгдеёжзиклмнопрст....) - итд

Спустя 59 минут, 45 секунд (21.12.2011 - 23:40) Игорь_Vasinsky написал(а):
если я не буду верить в свои слова то кто?

Спустя 2 часа, 34 минуты, 58 секунд (22.12.2011 - 02:15) killer8080 написал(а):
Цитата (linf @ 21.12.2011 - 21:41)
вместо (а-яА-Я) написал (абвгдеёжзиклмнопрст....) - итд

нужно было просто
[а-яё]

Спустя 19 дней, 15 часов, 13 минут, 12 секунд (11.01.2012 - 17:29) Zerstoren написал(а):
мягкий знак вроде тоже игнориться.
Нужно будет тест провести)


Провел.

скрипт:


// UTF-8
$letters = array('й','ц','у','к','е','н','г','ш','щ','з','х','ъ','ф','ы','в','а','п','р','о','л','д','ж','э','я','ч','с','м','и','т','ь','б','ю');
foreach($letters as $letter) {
if( preg_match('~[а-я]~u',$letter))
var_dump($letter);
else
var_dump($letter.' false');
}


Результат:


string(2) "й"
string(2) "ц"
string(2) "у"
string(2) "к"
string(2) "е"
string(2) "н"
string(2) "г"
string(2) "ш"
string(2) "щ"
string(2) "з"
string(2) "х"
string(2) "ъ"
string(2) "ф"
string(2) "ы"
string(2) "в"
string(2) "а"
string(2) "п"
string(2) "р"
string(2) "о"
string(2) "л"
string(2) "д"
string(2) "ж"
string(2) "э"
string(2) "я"
string(2) "ч"
string(2) "с"
string(2) "м"
string(2) "и"
string(2) "т"
string(2) "ь"
string(2) "б"
string(2) "ю"


А вот это уже интереснее.


_____________
Live in new format =)
Быстрый ответ:

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