Я пытаюсь создать веб-сайт на сервере моей школы, но у них PHP установлен как CGI, поэтому файлы .php могут запускаться только в папке cgi-bin.
Это несколько проблематично, если я хочу, чтобы мой индекс был файлом .php, а не .html, поскольку он должен находиться вне папки cgi-bin и в корневой папке WWW.
Кроме того, это сервер apache, поэтому я попытался отредактировать свой файл .htaccess только для того, чтобы понять, что я не знаю, где находится двоичный файл php-cgi (в конце концов, это сервер моей школы, и у меня нет разрешений только на изучение ).
Есть ли другой способ заставить работать индексный файл .php, который находится за пределами папки cgi-bin, без необходимости делать что-то уродливое, например, создать файл index.html в корневом каталоге, который перенаправляет на файл .php внутри cgi -bin папка?
У вас есть несколько вариантов. Если mod_rewrite
включен, вы можете использовать это для перезаписи запросов на путь в вашем /cgi-bin/
. $_SERVER[]
будет по-прежнему содержать исходный URI запроса, так что вы можете условно выполнять действия на основе запрошенного пути.
В качестве альтернативы, если вы категорически настроены на использование .htaccess, чтобы файлы PHP могли выполняться где угодно (что может быть даже невозможно - httpd.conf указывает через AllowOverride
директиве, что файлы .htaccess могут и не могут делать), затем создайте файл PHP, содержащий
<?php
phpinfo();
и поместите его в свой cgi-bin
каталог, он расскажет вам все соответствующие сведения об этой установке PHP (которые должны включать расположение php-cgi
исполняемый файл).
Вы можете просто создать файл index.html с мета-перенаправлением, он не очистит URL-адреса, но, по крайней мере, будет работать.