Переписать Apache: добавить обработчик CGI перед каждым путем запроса? - PullRequest
0 голосов
/ 28 апреля 2011

У меня есть каталог с веб-приложением Sinatra.Из-за некоторых ограничений хостинга, я должен запустить это приложение через CGI-скрипт;тем не менее, я написал его, чтобы разобрать часть пути URL, а не просто строку запроса.Таким образом, большинство моих запросов записываются как:

GET /point/get HTTP/1.0

Однако из-за сценария CGI фактический вызываемый URL (например) http://server.com/script.cgi/point/get.

Есть ли способ, используя mod_rewrite, вставить это script.cgi/ в каждый входящий запрос?

1 Ответ

1 голос
/ 28 апреля 2011

Попробуйте это в вашем .htaccess:

Options +FollowSymlinks -MultiViews
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} !^GET\s/script\.cgi/ [NC]
RewriteCond %{REQUEST_URI} !/script\.cgi/ [NC]
RewriteRule ^(.*)$ /script.cgi/$1 [L,R]

Это сделает внешнее перенаправление .

Для внутреннего перенаправления замените последнюю строку следующим:

RewriteRule ^(.*)$ /script.cgi/$1 [L]
...