Я создаю простой API с apache и хочу сопоставить /really/long/path/api/captions.php?caption_id=blah
с /really/long/path/api/captions/blah
. Важно НЕ указывать полный путь в правиле перезаписи, потому что я хочу, чтобы это работало независимо от того, где я разверну этот код. Тем не менее, я не могу найти / выяснить рабочий пример .htaccess
правил перезаписи, которые позволяют мне сопоставлять только на основании последней части расширения.
Итак, если предположить, что у меня есть, скажем, captions.php
в директории с именем api
, какой .htaccess
файл мне нужно включить в api
, чтобы выполнить это преобразование, не имея /really/long/path/
где-нибудь там?
(я также хочу иметь возможность сопоставить /really/long/path/api/captions.php
с /really/long/path/api/captions/
и /really/long/path/api/captions
.)
Я пробовал всевозможные подстановочные символы синтаксиса; Вот одна из тех нерабочих попыток:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)/?captions/(.*?)/?$ /captions.php?caption_id=$1 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /captions\.php\?caption_id=([^\&\ ]+)
RewriteRule ^(.*?)/?captions\.php$ /captions/%1? [L,R=301]
Спасибо!