Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > mod_rewrite, чтоб его...


Автор: immax 14.8.2005, 22:05
Можете считать меня тупым... Я не могу переписать url mod_rewrite'ом... Кучу статей читал, кучу примеров смотрел...
Не могу, и всё тут...
Вот что мне надо:
1. Линки выглядят так:
http://host.ru/index.php?pat=par1&bas=par2
2. Переписать надо так:
http://host.ru/par1par2.html

Перепробовал всё возможное и невозможное... Не получается... Помогите, плз... smile

Автор: Mal Hack 14.8.2005, 22:09
Нужен хоть какой-ть разделитель, к примеру - тире...
Код

RewriteRule (.+?)-(.+?).html index.php?pat=$1&bas=$2

Автор: immax 14.8.2005, 22:20
А без тире никак? Я пробовал без тире... Просто скачал интерра блог- глянул в .htaccess, обмер... Сделал по примеру этого самого блога... Выдавало ошибку и писало в лог ругаль про мод_реврайт...
Спасибо большое... Побежал пробовать...
smile

Автор: Mal Hack 14.8.2005, 22:22
Цитата(immax @ 14.8.2005, 23:20)
А без тире никак?

Ну будет линк /slfkjsjfdlw48jkdsjf49sj94jl349jfp234fposdjkpfjw4ojfw48hfok2f93ufp934.html
И как ты узнаешь где какой параметр? smile

Автор: immax 14.8.2005, 22:57
Хех... Тяжела жизнь чайника...

Код

RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^(.+?)-(.+?).html index.php?pat=$1&bas=$2

Вот что выдал ерролог:
Код

cannot compile regular expression '(.+?)-(.+?).html'

Попробовал так:
Код

RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^(.*)-(.*).html ?pat=$1&bas=$2

Уже ошибки сервака нет, но выдаёт:
Код

Bad Request
Your browser sent a request that this server could not understand.

smile

Автор: Mal Hack 14.8.2005, 23:03
Поставь \-

Автор: immax 14.8.2005, 23:07
Чё я только ни ставил... Это не из-за этого... smile
Может:
RewriteRule ^(.*)-(.*).html ?pat=$1&bas=$2 - не верно, и запроса http://localhost/english-index.html апач не понимает?

Автор: Mal Hack 14.8.2005, 23:32
Ты не указал файл, куда пересылать.
Код

RewriteRule ^(.*)-(.*).html index.php?pat=$1&bas=$2


ИМХО, у меня сработало. Если тебя не туда перекинет то поиграйся с rewriteBase.

Автор: immax 15.8.2005, 02:00
Нда, похоже у криворукого юзверя завёлся криворукий апач... smile Пойду себе, что ли, 2.0.52 поставлю... Мот будет окейно работать...

Автор: immax 15.8.2005, 12:01
Прикол так прикол... У меня всё, что с mod_rewrite'ом, выдаёт серв. сразу: Bad request...
Вот это пироги... Раньше-то работало...

Автор: Mal Hack 15.8.2005, 12:30
1. Покажи .htaccess полностью.
2. Точно включил mod_rewrite на сервере?
3. RewriteEngine On нет в httpd.conf?

Автор: immax 15.8.2005, 15:33
Нет... Всё включено-настроено... Я теперь конфиг апача читаю, как свою биографию...
Поставил себе 2-ой апач. По сути конфа ничем не отличается... Настроил по-быстрому- всё заработало!!! smile
Воть .htaccess:
Код

AddDefaultCharset windows-1251
<IfModule mod_php4.c>
    php_flag display_errors off
    php_flag register_globals on
    php_flag magic_quotes_gpc off
    php_flag zlib.output_compression on
</IfModule>
<IfModule mod_php5.c>
    php_flag display_errors off
    php_flag register_globals on
    php_flag magic_quotes_gpc off
    php_flag zlib.output_compression on
</IfModule>
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^(.*)-(.*).html index.php?patt=$1&base=$2

А много счас хостов с второй апачей? Мот это проблема 1.3 ? У тебя какая версия?

Автор: Mal Hack 15.8.2005, 16:00
У меня на сервере 1.3, дома 2.0.
ЗЫ: А как ты распознаешь PHP4 или PHP5 скрипт? smile

Цитата(immax @ 15.8.2005, 16:33)
А много счас хостов с второй апачей?

Нет. Но 2 вполне стабилен.

Автор: immax 15.8.2005, 18:33
Да я это безбожно упёр с чужого .htaccess... В плане определение какой у тя пхп модом подрублен... Просто там что-то разное есть, дык автор так и зробив... А я сплагиатил, мот пригодится. smile
А на 1.3 у тебя работает? Мот у меня дистриб покоцаный...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)