При текущей настройке, если вы введете http://example.com/
в адресную строку браузера, вы не сможете увидеть processing.cgi
в такой адресной строке, если ваш Perl-скрипт не выполняет перенаправление HTTP (отправляя заголовок Location
) , Поэтому я предлагаю вам еще раз проверить свой Perl-код.
Как бы то ни было, я вижу много директив, случайно разбросанных по файлу. Я думаю, что будет более продуктивным, если я объясню, что они означают:
AddHandler cgi-script .cgi
Options +ExecCGI
Включите сценарии CGI и сопоставьте расширение * .cgi, чтобы любой файл, заканчивающийся .cgi
, считался программой.
IndexIgnore *
Поручить Apache генерировать пустые списки каталогов. Когда людям не нужны списки каталогов, они обычно просто отключают их: Options -Indexes
DirectoryIndex processing.cgi
Когда URL-адрес указывает на каталог, найдите и отобразите файл с именем processing.cgi
в таком каталоге. Планируете ли вы сохранить копию вашей программы Perl в каждом каталоге вашего сайта?
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Если URL-адрес не сопоставлен с существующим файлом или каталогом ...
RewriteRule ^(.*)$ processing.cgi/$1
Когда пользователь вводит http://example.com/foo/bar.jpg
, на самом деле запускается http://example.com/processing.cgi/foo/bar.jpg
. Посмотрите, соответствуют ли другие правила.
RewriteRule ^$ processing.cgi [L]
Когда пользователь вводит http://example.com
, на самом деле запускается http://example.com/processing.cgi
. Мы закончили с правилами.
RewriteRule ^/$ processing.cgi [L]
Когда пользователь вводит http://example.com/
, на самом деле запускается http://example.com/processing.cgi
. Мы закончили с правилами.
Теперь ясно, что у вас много избыточных правил. Ваши точные потребности мне не ясны на 100%, но я думаю, что вы можете безопасно удалить большинство ваших директив:
AddHandler cgi-script .cgi
Options +ExecCGI
Options -Indexes
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ processing.cgi/$1 [L]