У меня есть эти RewriteRules, которые работают отлично:mod_rewrite: как указать на другой файл, но сохранить запрос vars?
# 4 params
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?app=$1&do=$2&what=$3&id=$4 [NC,L,QSA]
# 3 params
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?app=$1&do=$2&what=$3 [NC,L,QSA]
# 2 params
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?app=$1&do=$2 [NC,L,QSA]
# 1 param
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?app=$1 [NC,L,QSA]
Теперь, я хотел бы, что если URL содержит /api/
, то я хотел бы, чтобы она указывала на файл с именем public.api.php
, но все еще есть те, 4 запроса вары в качестве параметров. Я мог бы организовать это путем выделения всех правил в том порядке, в котором они должны обрабатываться, но это делает довольно длинный файл .htaccess.
Мои вопросы это: есть ли способ, чтобы добавить какое-то условное правило, которое будет проверять, если /api/
в запрашиваемом Ури и в соответствии с этим, указует на index.php
или public.api.php
, не повторяя обработку четыре запросов варов?
могли бы вы уточнить? Я не уверен, что понимаю логику, которую вы предлагаете. – pixeline
Просто скопируйте каждый параметр запроса, все из которых совпадают в одной группе, как описано в этом RewriteRule выше, что, по общему признанию, не проверено. – fforw
Ваш regexp все не избежать? что означает «любой символ один раз» в регулярном выражении. – fforw