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

Форум Apache

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

 

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

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

тема: помогите с простеньким RewriteRule

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

 
 автор: glsv (Дизайнер)   (06.01.2007 в 07:31)   письмо автору
 
   для: 1999   (05.01.2007 в 20:31)
 

Да, зацикливается. Исправьте так:

RewriteEngine on 
Options +FollowSymlinks 
RewriteBase /external/
RewriteRule    ^([a-zA-Z0-9_]+)/?$    /external/$1.php?%{QUERY_STRING}    [L]

   
 
 автор: cheops   (06.01.2007 в 02:31)   письмо автору
 
   для: 1999   (05.01.2007 в 20:31)
 

Где то зацикливается... Зря используете такое общее правило, как ([a-zA-Z0-9_]+) - этому почти всё удовлетворяет, в том числе и URL, на который вы осуществляете переадресацию - опять срабатывает правило - опять переадресация и так до бесконечности, пока Apache это не надоедает и он не швыряет в вас 500 ошибку.

   
 
 автор: 1999   (05.01.2007 в 20:31)   письмо автору
 
   для: 1999   (05.01.2007 в 20:05)
 

рано я радовался((

RewriteEngine on
Options +FollowSymlinks
RewriteBase /external/

RewriteRule    ([a-zA-Z0-9_]+)/?$    /external/$1.php?%{QUERY_STRING}    [L]


теперь выдает 500 ошибку, в логах пишет

[Fri Jan 05 20:30:24 2007] [error] [client
 127.0.0.1] mod_rewrite: maximum number of 
internal redirects reached. Assuming 
configuration error. Use 'RewriteOptions 
MaxRedirects' to increase the limit if 
neccessary.

что не так?

   
 
 автор: 1999   (05.01.2007 в 20:05)   письмо автору
 
   для: 1999   (03.01.2007 в 21:28)
 

все. спаисбо. вроде понял

   
 
 автор: cheops   (04.01.2007 в 18:03)   письмо автору
 
   для: 1999   (04.01.2007 в 14:40)
 

GET-параметры в регулярном выражении RewriteRule отбрасываются и их следует брать из переменной окружения QUERY_STRING.

   
 
 автор: 1999   (04.01.2007 в 14:40)   письмо автору
 
   для: cheops   (04.01.2007 в 13:20)
 

странно... не хочет..
пробовал такую еще

RewriteRule    ^/external/([a-zA-Z_]+)/([a-zA-Z0-9_\&?]*)$    /external/$1.php$2    [L]

тоже почему-то не хочет работать(

ЗЫ. заодно %{QUERY_STRING} - это что за зверь? ее можно всегда использовать?

   
 
 автор: cheops   (04.01.2007 в 13:20)   письмо автору
 
   для: 1999   (04.01.2007 в 06:12)
 

Попробуйте поместить следующие инструкции в конфигурационный файл .htaccess
Options +FollowSymlinks  
RewriteEngine On  
RewriteBase   /  
RewriteRule ^external/wide /external/wide.php?%{QUERY_STRING} [L] 

   
 
 автор: 1999   (04.01.2007 в 06:12)   письмо автору
 
   для: cheops   (04.01.2007 в 00:10)
 

ага работает)
а можно пример по первому? ну чтоб было как externak/photo/?width=25&height=26
просто токо щас сообразил, что файлов-то в той папке у меня около 5 и для каждого писать правило будет глупо. Хотелось бы переадресовывать как /external/имя файла без разрешения/?get-аргументы

т.е.

/external/wide.php?hello=1

хочется приводить к виду

/external/wide/?hello=1

   
 
 автор: cheops   (04.01.2007 в 00:10)   письмо автору
 
   для: 1999   (03.01.2007 в 21:28)
 

Попробуйте так
Options +FollowSymlinks 
RewriteEngine On 
RewriteBase   / 
RewriteRule   ^external/photo/width/([0-9]+)/height/([0-9]+)/  /external/photo.php?width=$1&height=$2 [L] 

   
 
 автор: 1999   (03.01.2007 в 21:28)   письмо автору
 
 

здравствуйте!
подскажите пожалуйста как УРЛ вида

/external/photo.php?width=25&height=26

привести к виду

/external/photo/?width=25&height=26

а еще лучше к такому:

/external/photo/width/25/height/26/

но чтобы все GET-параметры, передаваемые файлу photo.php сохранялись
сам пытался написать RewriteRule, но на таких больших строках я путаюсь((

P.S. все в папке external, которая лежит в корне. В папке лежит файл .htaccess следующего вида:

RewriteEngine on
Options +FollowSymlinks
RewriteBase /external/

   

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

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

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