Симпатичный URL для Perl CGI - PullRequest
       4

Симпатичный URL для Perl CGI

0 голосов
/ 24 апреля 2018

Я только что перешел с использования PHP на Perl для скрипта, который содержит команды API.

Как php, .htaccess выглядел так:

RewriteRule ^api/?$ api.php [L]
RewriteRule ^api/?([a-zA-Z0-9_-]{1,})?/?$ api.php?command=$1 [QSA,L]
RewriteRule ^api/?([a-zA-Z0-9_-]{1,})?/?([a-zA-Z0-9_-]{1,})?/?$ api.php?command=$1&key=$2 [QSA,L]

Конечный результат выполнялся с URL-адресом, подобным http://example.com/api/command/key (где api - имя скрипта), сработало как задумано.

Переключение на Perl, посещение http://example.com/api перенаправляет на http://example.com/usr/lib/cgi-bin/api.pl, который не работает ни в малейшей степени, а также выглядит отвратительно. Я перепробовал все, что мог придумать с .htaccess и serve-cgi-bin.conf, но у меня ничего не работает. На самом деле не имеет значения, в какую папку мне нужно поместить api.pl, если имя и расширение папки не отображаются в URL.

Как я могу получить нужный URL?

1 Ответ

0 голосов
/ 25 апреля 2018

Вам нужно всего лишь заменить api.php на cgi-bin/api.pl в ваших правилах.

RewriteRule ^api/?$ cgi-bin/api.pl [L]
RewriteRule ^api/?([a-zA-Z0-9_-]{1,})?/?$ cgi-bin/api.pl?command=$1 [QSA,L]
RewriteRule ^api/?([a-zA-Z0-9_-]{1,})?/?([a-zA-Z0-9_-]{1,})?/?$ cgi-bin/api.pl?command=$1&key=$2 [QSA,L]

Вы можете использовать такой инструмент, как htaccess.madewithlove.be , чтобы проверить свои правила.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...