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

Форум Регулярные Выражения

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

 

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

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

тема: Регулярное выражение для ссылки
 
 автор: serjinio   (12.08.2008 в 00:04)   письмо автору
 
 

Помогите написать регулярку для mod_rewrite
для ссылок вида
 /categories.php?section=secrets/

работает ..
RewriteRule ^([A-Za-z]+)/$ categories.php?section=$1 [QSA,L]


а мне надо написать регулярку для ссылок вида
/categories.php?section= all-secrets-1-end/
или
/categories.php?section= al-l-77-secrets-1-end/


только буквы латинские, цифры и тире между ними...

  Ответить  
 
 автор: xx77   (12.08.2008 в 09:43)   письмо автору
 
   для: serjinio   (12.08.2008 в 00:04)
 

^([0-9\-A-Z_a-z]+)/?$

/? на случай если слеша может быть а может и не быть в конце адреса

  Ответить  
 
 автор: serjinio   (12.08.2008 в 10:48)   письмо автору
 
   для: xx77   (12.08.2008 в 09:43)
 

RewriteRule ^([A-Za-z]+)/$ categories.php?section=$1 [QSA,L]
поменял на конструкцию
RewriteRule ^([0-9\-A-Z_a-z]+)/?$ categories.php?section=$1 [QSA,L]


попробовал несколько вариантов не получилось выдал 500
RewriteRule: cannot compile regular expression '^([0-9\\-A-Z_a-z]+)/$'\n
RewriteRule: cannot compile regular expression '^([0-9\\-A-Z_a-z]+)/?$'\n
RewriteRule: cannot compile regular expression '^([0-9\\-A-Za-z]+)/?$'\n


Заэкранировал -
RewriteRule ^([0-9\-\A-Za-z]+)/$ categories.php?section=$1 [QSA,L]

пропала 500 ,но
/categories.php?section= secrets проходит,а
/categories.php?section= all-secrets-1-end  нет
выдает
File does not exist: z:/home/test.ru/www/all-secrets-1-end/

хотя если отправляю без мод реврайта
href="categories.php?section=all-secrets-1-end"
все нормально 

  Ответить  
 
 автор: xx77   (12.08.2008 в 11:39)   письмо автору
 
   для: serjinio   (12.08.2008 в 10:48)
 

странно,
на денвере работает и если \- и так:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /x/archive/

RewriteRule ^([0-9\x2dA-Z_a-z]+)/?$ index.php?x=$1

например такой .htaccess лежит в ....../x/archive/
, и срабатывает при переходе по адресу например http://site/x/archive/txt-1/

  Ответить  
 
 автор: serjinio   (12.08.2008 в 12:17)   письмо автору
 
   для: xx77   (12.08.2008 в 11:39)
 

запустил!!!!
RewriteRule ^([0-9\A-Za-z\-]+)/?$ categories.php?section=$1 [QSA,L]

или такой
RewriteRule ^([^/]*)/$ /categories.php?section=$1 [L]


в чем отличие между ними в работе так и не понял но работают оба...может кто подскажет в чем же между ними отличие????

  Ответить  
Rambler's Top100
вверх

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