Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2011, 23:15   #1
impulsgraw
Верховный Судья
Пользователь
 
Аватар для impulsgraw
 
Регистрация: 23.11.2010
Сообщений: 82
Печаль И снова этот долбаный .htaccess

Здравствуйте!
Как же много проблем с этим веб-сервером!
Код:
RewriteBase /

RewriteRule ^login.html$ /mylivepage/enter.php?type=login [QSA]
RewriteRule ^logout.html$ /mylivepage/enter.php?type=logout [QSA]
RewriteRule ^my.html$ /mylivepage/home.php [QSA]
RewriteRule ^my.html?(.*)$ /mylivepage/home.php?$1 [QSA]
RewriteRule ^id(.*).html$ /mylivepage/home.php?lookid=$1 [QSA]
RewriteRule ^(.*).html$ /mylivepage/$1.php [QSA]
RewriteRule ^(.*).html?(.*)$ /mylivepage/$1.php?$2 [QSA]
RewriteRule ^@(.*)$ /mylivepage/home.php?lookname=$1 [QSA]
RewriteRule ^@(.*)/$ /mylivepage/home.php?lookname=$1 [QSA]
RewriteRule ^@(.*)/(.*).html$ /mylivepage/home.php?lookname=$1&file=$2 [QSA]
RewriteRule ^@(.*)/(.*).html?(.*)$ /mylivepage/home.php?lookname=$1&file=$2&param=\"$3\" [QSA]
Вот в этом коде он должен(по идее) переходя по ссылке http://localhost/mylivepage/index.html?hahaha=1 перейти по ссылке http://localhost/mylivepage/index.php?hahaha=1
А переходя по ссылке http://localhost/mylivepage/@youme/read.html?colnum=1 переходить по ссылке http://localhost/mylivepage/home.php?lookname=youme&file=read&p aram="colnum=1" но вот этого он не делает. Почему? когда я перехожу по вот такой ссылке http://localhost/mylivepage/@youme/read.html?colnum=1 мне денвер пишет ошибку:
The requested URL /mylivepage//mylivepage/@youme/read.php/read.php was not found on this server.

Последний раз редактировалось impulsgraw; 27.11.2011 в 23:19.
impulsgraw вне форума Ответить с цитированием
Старый 28.11.2011, 16:30   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Код:
RewriteRule ^@(.*)$ /mylivepage/home.php?lookname=$1 [QSA]
RewriteRule ^@(.*)/$ /mylivepage/home.php?lookname=$1 [QSA]
RewriteRule ^@(.*)/(.*).html$ /mylivepage/home.php?lookname=$1&file=$2 [QSA]
RewriteRule ^@(.*)/(.*).html?(.*)$ /mylivepage/home.php?lookname=$1&file=$2&param=\"$3\" [QSA]
Цитата:
http://localhost/mylivepage/@youme/read.html?colnum=1
http://localhost/mylivepage/home.php?lookname=youme&file=read&p aram="colnum=1"
Вы уж разберитесь что вам надо и оставьте один вариант. У вас наложение правил одно на другое происходит. Не гонитесь за универсальностью, она вам еще всадит нож в спину.
psycho-coder вне форума Ответить с цитированием
Старый 29.11.2011, 20:39   #3
impulsgraw
Верховный Судья
Пользователь
 
Аватар для impulsgraw
 
Регистрация: 23.11.2010
Сообщений: 82
По умолчанию

Ну так вот в чём и основная проблема: пользователь может набрать в строке:
Код:
http://localhost/mylivepage/@youme/
може вот так
Код:
http://localhost/mylivepage/@youme/read.html
может вот так
Код:
http://localhost/mylivepage/@youme/read.html?colnum=1
а может и вообще вот так
Код:
http://localhost/mylivepage/read.html
И вот надо, чтобы всё работало.
я попробывал убрать строки
Код:
RewriteRule ^(.*).html$ /mylivepage/$1.php [QSA]
RewriteRule ^(.*).html?(.*)$ /mylivepage/$1.php?$2 [QSA]
И инструкции
Код:
RewriteRule ^@(.*)$ /mylivepage/home.php?lookname=$1 [QSA]
RewriteRule ^@(.*)/$ /mylivepage/home.php?lookname=$1 [QSA]
RewriteRule ^@(.*)/(.*).html$ /mylivepage/home.php?lookname=$1&file=$2 [QSA]
RewriteRule ^@(.*)/(.*).html?(.*)$ /mylivepage/home.php?lookname=$1&file=$2&param=\"$3\" [QSA]
заработали!
Как же мне исключить одно из другого так, чтобы все варианты работали?
impulsgraw вне форума Ответить с цитированием
Старый 30.11.2011, 12:13   #4
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Добавь параметр L (последнее правило) в конце каждого правила. Как только найдется нужное правило, оно выполнитсья и все. Другие не будут задействованы
Код:
RewriteRule ^@(.*)$ /mylivepage/home.php?lookname=$1 [QSA,L]

Последний раз редактировалось psycho-coder; 30.11.2011 в 12:19.
psycho-coder вне форума Ответить с цитированием
Старый 05.12.2011, 18:35   #5
impulsgraw
Верховный Судья
Пользователь
 
Аватар для impulsgraw
 
Регистрация: 23.11.2010
Сообщений: 82
По умолчанию

Спасибо! +1
impulsgraw вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
.htaccess kpachbiu PHP 2 26.04.2011 15:52
.htaccess soonner PHP 4 16.12.2010 23:51
MDIChild снова и снова... Siber_Dec Общие вопросы Delphi 2 13.12.2009 03:24
.htaccess limon PHP 5 08.03.2009 01:28