математика с регулярным выражением в mod_rewrite - PullRequest
2 голосов
/ 10 февраля 2011

Я пытаюсь сделать следующее:

У меня есть URL: http://www.example.com/9999
, и я хочу, чтобы он вычел 5000 из этого числа и без проблем перенаправил на: http://www.example.com/page.php?id=4999

Могут ли регулярные выражения в mod_rewrite выполнять математические вычисления?

Ответы [ 3 ]

3 голосов
/ 10 февраля 2011

Нет.В регулярном выражении нет математики.

1 голос
/ 20 июня 2011

В регулярном выражении может не быть математики, но то, что мне было нужно, было вполне выполнимо:

Options +FollowSymLinks  
Options +Indexes  
RewriteEngine On
RewriteRule ^5([0-9][0-9][0-9])($) /offer_details.php?offers_id=$1$2 [R]
RewriteRule ^6([0-9][0-9][0-9])($) /offer_details.php?offers_id=1$1$2 [R]
RewriteRule ^7([0-9][0-9][0-9])($) /offer_details.php?offers_id=2$1$2 [R]
RewriteRule ^8([0-9][0-9][0-9])($) /offer_details.php?offers_id=3$1$2 [R]
RewriteRule ^9([0-9][0-9][0-9])($) /offer_details.php?offers_id=4$1$2 [R]

Наши идентификаторы продуктов начинались с 5000, и мы недавно прошли отметку 5000 (идентификатор предложения 10000+), поэтомуМне нужно добавить еще десять строк для 10000+.И к тому времени, когда мы достигнем предложения id 20000 (> 5 лет), мы надеемся, что появятся технологии, которые позволят мне сэкономить еще 10 строк.Кое-что по линии ядерного апокалипсиса подойдет.

0 голосов
/ 19 октября 2012

Создайте условный цикл с количеством строк и установите число строк, увеличиваемых на единицу, при достижении порогового значения для строк 10, при появлении 999-го элемента будет сгенерирована сотая строка.

...