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

Форум Apache

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

 

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

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

тема: что нужно для работы mod_rewrite ?
 
 автор: AlexSol   (03.01.2007 в 13:15)   письмо автору
 
 

Apache Version: Apache/2.0.59 (Win32)

в httpd.conf строка

LoadModule rewrite_module modules/mod_rewrite.so

раскоментирована

в phpinfo() пишет:

Loaded Modules : ..... mod_rewrite .....


создаю .htaccess

RewriteEngine On 
RewriteRule ^([^.]+)$ index.php?&get_query=$1 [QSA]


и в index.php

$caughtURI = $_REQUEST['get_query']; 
echo $caughtURI; 


на экране пусто.

   
 
 автор: cheops   (03.01.2007 в 15:50)   письмо автору
 
   для: AlexSol   (03.01.2007 в 13:15)
 

Что хотите преобразовать во что? . - это спец-символ, его следует экранировать \.

   
 
 автор: AlexSol   (03.01.2007 в 17:12)   письмо автору
 
   для: cheops   (03.01.2007 в 15:50)
 

чисто ради эксперемента, чтоб понять как работает.
как например получить из

http://www.myballista.ru/index.php?gl_page=27&id_menu=2&id_item_sel=4
это

http://www.myballista.ru/index.php/gl_page27

   
 
 автор: cheops   (04.01.2007 в 00:12)   письмо автору
 
   для: AlexSol   (03.01.2007 в 17:12)
 

Можно попробовать так
Options +FollowSymlinks  
RewriteEngine On  
RewriteBase   /  
RewriteRule   ^index.php/gl_page([0-9]+)  /index.php?gl_page=$1&id_menu=2&id_item_sel=4 [L] 

   
 
 автор: AlexSol   (04.01.2007 в 15:55)   письмо автору
 
   для: cheops   (04.01.2007 в 00:12)
 

понятно. при использование

RewriteEngine on   
Options +FollowSymlinks 
RewriteBase   /   
RewriteRule   ^.*page([0-9]+)  /index.php?gl_page=$1&id_menu=2&id_item_sel=4 [L]  

я попадаю на нужную страницу введя как
http://www.myballista.ru/page23
так и
http://www.myballista.ru/index.php?gl_page=27&id_menu=2&id_item_sel=4

а можно ли хранить (точнее как это организовать) набор правил в отдельном файле?

например в modx (http://modx.ru/) присоздание страницы есть возможность задать ей псевдоним, тоесть получаеся примерно так:

RewriteRule   ^news$ /index.php?page=1
RewriteRule   ^info$ /index.php?page=2
......


причем в их файле .htaccess такого нагромождения нет.

   
 
 автор: glsv (Дизайнер)   (04.01.2007 в 21:32)   письмо автору
 
   для: AlexSol   (04.01.2007 в 15:55)
 

>а можно ли хранить (точнее как это организовать) набор правил в отдельном файле?
Не очень ясна суть. Зачем нужно хранить в отдельном файле? И что с этим файлом нужно потом делать?

>например в modx (http://modx.ru/) присоздание страницы есть возможность задать ей псевдоним, тоесть получаеся примерно так:
>причем в их файле .htaccess такого нагромождения нет.

А что есть вместо этого?
Если не используется mod_rewrite, то преобразования могут осуществляться и через PHP.

   
 
 автор: AlexSol   (04.01.2007 в 22:00)   письмо автору
 
   для: glsv (Дизайнер)   (04.01.2007 в 21:32)
 

да, там наверно преобразование идет посредством php.
идея такая: идет не преобразование url а подмена через псевдонимы страниц. тоесть есть много-много разных страниц, которые открываются по

www.site.ru/index.php?id=[число]

в тоже время можно обративившись по www.site.ru/page_info.html получить скажем страницу www.site.ru/index.php?id=12, а по www.site.ru/sampl.html страницу www.site.ru/index.php?id=8. для таких целей использовать .htaccess наверно неправильно...

вопрос как организовать такое, если можно то на небоьлшом примере пожалуйста.
прикрепляю индексный файл и .htaccess для modX

   
 
 автор: glsv (Дизайнер)   (05.01.2007 в 06:50)   письмо автору
 
   для: AlexSol   (04.01.2007 в 22:00)
 

>да, там наверно преобразование идет посредством php.
Да, вот директива, которая все URL-ы перенаправляет на index.php

RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

А уже в index.php происходит разбор переданных параметров.

>Для таких целей использовать .htaccess наверно неправильно...
Ну почему, все нормально. Но если у Вас все равно вся обработка идет через один файл index.php, то логично использовать его и для преобразования.

>вопрос как организовать такое, если можно то на небоьлшом примере пожалуйста.
В index.php Вы отслеживаете значения переданных параметров (переменной $_SERVER["QUERY_STRING"]) и подставляете нужную страницу. Вариантов как конкретно это организовать может быть множество...

   
Rambler's Top100
вверх

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