математические операторы в файле htaccess - PullRequest
3 голосов
/ 16 октября 2010

возможно ли использовать математические операторы в файле .htaccess? например, я хочу перенаправить страницу с id = 100 на страницу с id = 30?

1 Ответ

2 голосов
/ 16 октября 2010

Если вы говорите о строках запроса, да.

Чтобы перенаправить http://example.com/page.php?id=100 на http://example.com/page.php?id=30, вы должны сделать это:

RewriteEngine On
RewriteCond %{QUERY_STRING} id=100
RewriteRule page.php page.php?id=30 [R=301,L]

Редактировать: AFAIK, невозможно выполнять вычисления в .htaccess. Отправьте запрос в PHP-скрипт, где вы выполняете вычисления, а затем используйте функцию header для перенаправления (не уверен, что вы используете PHP, но тот же принцип применим к другим языкам).

в .htaccess:

RewriteEngine On
RewriteCond %{QUERY_STRING} id=([0-9]*)
RewriteRule page.php calc.php?id=%1 [L]

И в calc.php:

<?php    
$base_url = 'http://example.com/destination.php?id=';

if($_GET['id'] < 100){
    $new_id = 30;
}
elseif($_GET['id'] >= 100){
    $new_id = 40;
}

$url = $base_url.$new_id;

header("Location: $url"); 
exit();
...