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

Форум Apache

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: RewriteCond %{QUERY_STRING}

Сообщения:  [1-10]   [11-17] 

 
 автор: Лена   (13.01.2009 в 11:41)   письмо автору
 
   для: xx7   (13.01.2009 в 00:01)
 

>просто можно будет набрать адрес http://domain.adres/add/rewrite/1/2/?escho=5
Все поняла и проверила. Получилось.
Спасибо. Тема закрыта.

  Ответить  
 
 автор: xx7   (13.01.2009 в 00:11)
 
   для: xx7   (13.01.2009 в 00:01)
 

что-то опять меняют в скриптах форума

  Ответить  
 
 автор: xx7   (13.01.2009 в 00:01)
 
   для: Лена   (12.01.2009 в 23:22)
 

не совсем.
просто можно будет набрать адрес http://domain.adres/add/rewrite/1/2/?escho=5
и запрос преобразуется в http://domain.adres/add/rewrite.php?page_id=1&foto=2&escho=5


можно конечно сделать например ^rewrite/([0-9]+)/([A-Za-z]+_[0-9]+)/?([0-9]+)?/?$
и принимать запросы как с двумя несуществующими названиями дирректорий , так и с тремя, но это уже другая история :)

  Ответить  
 
 автор: Лена   (12.01.2009 в 23:22)   письмо автору
 
   для: xx7   (12.01.2009 в 22:19)
 

Спасибо вам большое за помощь.

>и насчёт QSA, незнаю бывают-ли нужны ещё другие параметры вашему rewrite.php :)
Подождите. Давайте разберемся. Может, оно мне не нужно. Другие параметры, как я поняла, это если в мой запрос будут добавляться еще переменные, типа: rewrite.php?page_id=$1&foto=$2&text=$2. Так или не правильно?

  Ответить  
 
 автор: xx7   (12.01.2009 в 22:19)
 
   для: Лена   (12.01.2009 в 19:50)
 

Теперь наверное только стоит убрать [R] ,)
и насчёт QSA, незнаю бывают-ли нужны ещё другие параметры вашему rewrite.php :)

можно теперь ещё попробовать влепить cookie клиенту , так неосторожно набравшему именно ненастоящий адресс , например так
Options +FollowSymlinks 
RewriteEngine On
RewriteBase /add/ 
RewriteRule ^rewrite/([0-9]+)/([_A-Za-z0-9]+)/?$ rewrite.php?page_id=$1&foto=$2 [L,QSA,CO=yes:popal:domain.adres:1440:/]

только добавил /? , чтобы адрес мог заканчиваться на слэш
И почему-то на денвере ничего не смог добиться , не cookie послать , не переменную окружения установить [E=X_PARAM:1]
(Впринципе это может быть как вариант отсеять вызывающих прямой адрес)
на хостинге работает

  Ответить  
 
 автор: Лена   (12.01.2009 в 19:50)   письмо автору
 
   для: xx77   (12.01.2009 в 17:28)
 

>и безо всяких Cond :)
Ладно, сделаю, как вы говорите:

RewriteEngine on 
RewriteBase /add/
RewriteRule ^rewrite/([0-9]+)/([_A-Za-z0-9]+)$ rewrite.php?page_id=$1&foto=$2 [L,QSA,R]


А Cond оставлю про запас :)

  Ответить  
 
 автор: xx77   (12.01.2009 в 17:28)   письмо автору
 
   для: Лена   (12.01.2009 в 15:33)
 

похоже совсем ничего уже не понимаю ,) зачем делать ЧПУ такое
, что смогут понять , какое оно не простое У ?
Уберайти этот вопрос оттуда, и всё станет просче , и безо всяких Cond :)

Там кстати не обозначено даже ^ и/или $, b и эти цифра и слово будут искаться не только там где должны-бы. могувт даже если запрос будет таким http://example.org/add/rewrite.php?br=opera+9/27+kruto
Для чего Вам такие запросы ?
пусть лучше фильтруются такие которые просто http://example.org/add/9/27/?zdes._tozhe_mozhno_dobavit.
и там где RewriteRule ^rewrite\.php?$ , p? означает что 'p' или есть , или её нет :)

  Ответить  
 
 автор: Trianon   (12.01.2009 в 16:28)   письмо автору
 
   для: Лена   (12.01.2009 в 15:33)
 

вопрос не является необходимым условием при применении метода GET.
В ЧПУ обычно вопросов не оставляют.
В чем проявляется удобство пользователя - мне не понять. Но это субъективно.

В остальном - согласен.

  Ответить  
 
 автор: Лена   (12.01.2009 в 15:33)   письмо автору
 
   для: Trianon   (12.01.2009 в 11:11)
 

>этот тест не от того метода.
Почему?

>в ссылке знак вопроса.
В ссылке знак вопроса, который показывает, что дальше идет запрос, который передается с помощью GET-метода.

Вообще-то с этой "переделкой" ссылок с одной стороны - для пользователя это удобно, с другой стороны, тот, кто пишет скрипт, может здорово запутаться. Вот, например, есть у меня куча модулей, которые подключаются в зависимости от полученных гет-переменных. И есть у меня ссылки вида: ?23/24/25/26, плюс есть один файл со всеми правилами модреврайта. И как я смогу увидеть, что ссылка ?23/24/25/26 подчиняется какому-то конкретному правилу? Как я смогу увидеть, что вот эта ссылка, допустим, посылает гет-параметр page-id? Получается, чтобы не запутаться, нужно в каждую отдельную папку(папку, где содержатся все скрипты одного модуля) класть одно правило модреврайта, чтобы было видно, какие гет-переменные я получаю.

  Ответить  
 
 автор: Лена   (12.01.2009 в 15:23)   письмо автору
 
   для: xx7   (12.01.2009 в 01:19)
 

[R] сделала, теперь вижу, куда ведет ссылка. :)
Вот это у меня получилось(модуль работает в конкретной папке):

Options +FollowSymlinks  
RewriteEngine on 
RewriteBase /add/
RewriteRule ^.htaccess$ - [F] 
RewriteCond %{QUERY_STRING} ([0-9]+)/([_A-Za-z0-9]+)
RewriteRule ^rewrite\.php?$  rewrite.php?page_id=%1&foto=%2 [L,R] 

А вот ваш вариант с [QSA] почему-то не получается.

  Ответить  

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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