Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Русские адреса на сайтах.
 
 автор: Maxam   (28.09.2008 в 15:22)   письмо автору
 
 

Вижу многие сайты делают с адресами:
http://site.ru/мои/фото/
http://site.ru/моя/музыка/
http://site.ru/фильмы/популярные/

Но мне кажется, что конкретных дирректорий этих нет, такое ощущение, что в адресной строке такие адреса как пемеренные, если бы:
http://site.ru/?a=мои&b=фото
http://site.ru/?a=моя&b=музыка
http://site.ru/?a=фильмы&b=популярные

Или мне кажется?

  Ответить  
 
 автор: ddhvvn   (28.09.2008 в 15:27)   письмо автору
 
   для: Maxam   (28.09.2008 в 15:22)
 

У меня такое ощущение, что Вы знаете даже, как это организовано, только непонятно зачем Вы задали вопрос! =))

Это сделано с пощью ModRewrite
пример .htaccess

...
RewriteEngine On 
RewriteBase /
RewriteRule ([а-я]+)/([а-я]+)/? index.php?a=$1&b=$2
...

  Ответить  
 
 автор: Maxam   (28.09.2008 в 15:48)   письмо автору
 
   для: ddhvvn   (28.09.2008 в 15:27)
 

Да, а это как работает? В примере можно? Спасибо!

  Ответить  
 
 автор: BinLaden   (28.09.2008 в 16:12)   письмо автору
 
   для: ddhvvn   (28.09.2008 в 15:27)
 

> ([а-я]+)/([а-я]+)/?

Откуда в URI кириллические буквы?

  Ответить  
 
 автор: Maxam   (28.09.2008 в 16:42)   письмо автору
 
   для: ddhvvn   (28.09.2008 в 15:27)
 

Да, ещё, а как это на локалхост реализовать?

  Ответить  
 
 автор: ddhvvn   (28.09.2008 в 16:44)   письмо автору
 
   для: Maxam   (28.09.2008 в 16:42)
 

Я ж дал пример! )

В директории в файл .htaccess прописываете правила и все.
Главное, чтобы на апаче был подлкючен модуль mod_rewrite.

  Ответить  
 
 автор: Maxam   (28.09.2008 в 16:54)   письмо автору
 
   для: ddhvvn   (28.09.2008 в 15:27)
 

Internal Server Error


Пишёт на localhost.

  Ответить  
 
 автор: ddhvvn   (28.09.2008 в 17:26)   письмо автору
 
   для: Maxam   (28.09.2008 в 16:54)
 

Мод реврайт включен?

Вы написали так же как у меня?
Апач может не распознавать кирилицу.
Проверьте включен ли mod_rewrite.

Просто я написал так, чтобы не путать Вас. Вы задали конкретный вопрос, я дал конкретный ответ. С конретными примерами! =))

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

  Ответить  
 
 автор: ddhvvn   (28.09.2008 в 17:27)   письмо автору
 
   для: Maxam   (28.09.2008 в 16:54)
 

Мод реврайт включен?

Вы написали так же как у меня?
Апач может не распознавать кирилицу.
Проверьте включен ли mod_rewrite.

Просто я написал так, чтобы не путать Вас. Вы задали конкретный вопрос, я дал конкретный ответ. С конретными примерами! =))

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

  Ответить  
 
 автор: Maxam   (28.09.2008 в 17:29)   письмо автору
 
   для: ddhvvn   (28.09.2008 в 17:27)
 

Я заменил сразу на:
RewriteRule ([a-z]+)/([a-z]+)/? index.php?a=$1&b=$2

  Ответить  
 
 автор: Lelik   (28.09.2008 в 15:28)   письмо автору
 
   для: Maxam   (28.09.2008 в 15:22)
 

не кажется, но бывает по разному, может кто действительно директории создает :)

  Ответить  
 
 автор: Maxam   (28.09.2008 в 17:18)   письмо автору
 
   для: Maxam   (28.09.2008 в 15:22)
 

Вообщем, всё всё всё настроил. Сама система rewrit'а пашет!
Но! Смотрите, сайт тут "http://localhost/site/". Когда пишу "http://localhost/site/dir/"
Он мне пишет, что страницы не существует, т.е. то, когда бы я просто к директории "dir" обращался, а должен я так понял в виде переменной уже передать "a=dir".

  Ответить  
 
 автор: Maxam   (28.09.2008 в 18:59)   письмо автору
 
   для: Maxam   (28.09.2008 в 17:18)
 

???

  Ответить  
 
 автор: Lelik   (28.09.2008 в 19:01)   письмо автору
 
   для: Maxam   (28.09.2008 в 18:59)
 

для этого надо написать что-то типа:

RewriteRule ^(dir/dir)/ - [L]

  Ответить  
 
 автор: Maxam   (28.09.2008 в 20:18)   письмо автору
 
   для: Lelik   (28.09.2008 в 19:01)
 

Где "/dir/dir/" и "[L]" - это что?

  Ответить  
 
 автор: Lelik   (29.09.2008 в 00:41)   письмо автору
 
   для: Maxam   (28.09.2008 в 20:18)
 

а фиг знает, что это :) "/dir/dir/" - это скорее всего путь к нужной директории, а "[L]" - какая-то хрень, которая при совпадении с условием "/dir/dir/" обрывает выполнение условий из файла .htaccess, ну или, что-то в этом роде...

  Ответить  
 
 автор: maxam   (29.09.2008 в 15:59)   письмо автору
 
   для: Lelik   (29.09.2008 в 00:41)
 

Окей, все получилось - работает!
Но есть загвоздка:
RewriteRule ([a-z]+)/([a-z]+)/? index.php

В этом случае если я указываю путь:
http://site.ru/dir/ 

или
http://site.ru/dir/dir/dir/

то но выводит ошибку! Т.е. я могу указать путь именно в две папки (dir/dir).
Как это исправить? Спасибо!

  Ответить  
 
 автор: Maxam   (04.10.2008 в 20:42)   письмо автору
 
   для: maxam   (29.09.2008 в 15:59)
 

Так никто и не написал (((

  Ответить  
 
 автор: Trianon   (04.10.2008 в 21:08)   письмо автору
 
   для: Maxam   (04.10.2008 в 20:42)
 

Какая тема - такой и ответ.

  Ответить  
 
 автор: mihdan   (29.09.2008 в 16:29)   письмо автору
 
   для: Maxam   (28.09.2008 в 20:18)
 

L сокращенно от last - последнее правило значит

  Ответить  
 
 автор: Maxam   (29.09.2008 в 16:35)   письмо автору
 
   для: mihdan   (29.09.2008 в 16:29)
 

В своём рабочем варианте я вообще L не использовал.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования