Я должен быть в состоянии направить запрос GET или POST, когда он приходит к
/eSCL/ScannerStatus
или
/eSCL/ScannerStatus/
TO
/eSCL/ScannerStatus/index.php
I Я не ищу перенаправления, поскольку это то, что я получаю сейчас. (301 постоянно перемещено)
То есть, если конечный sla sh или нет, запрос ссылается на каталог, и мне нужно загрузить индекс. php в этом каталоге без перенаправления
Я просмотрел документы здесь https://httpd.apache.org/docs/2.4/mod/mod_dir.html и, откровенно говоря, похоже, что он не работает, как указано, или, может быть, мне не хватает мода?
Я пробовал много вариантов.
Я выполнил
sudo a2enmod rewrite
и
sudo a2enmod dir
, теперь оба отображаются как включенные.
Apache 2.4, работающие на Raspberry Pi3
Я пробовал МНОГИЕ МНОГИЕ разные правила, и я также вижу в результатах Google, что это проблема для многих других, пытающихся сделать то же самое. Я вижу многочисленные "решения", опубликованные, многие из которых не работают.
Я не вижу причин для повторного повторения попыток переписывания 20+ модов, которые я предпринял и потерпел неудачу. Я ищу то, что работает без перенаправления
Edit-UPDATE -------------------------------- -----------------
Я только что вернулся к этому, удалил .htaccess
, и теперь сервер отказывается загружать index.php
и вместо этого показывает список каталогов .
Это ставит меня в недоумение. Я не верю, что мне нужно .htaccess
для PHP файлов, как этого не было раньше.
РЕДАКТИРОВАТЬ ОБНОВЛЕНИЕ 2 -------------------- ---------------- Мне удалось вернуться на правильный путь с некоторыми директивами, которые по некоторым причинам казались go.
Теперь у меня есть / var / www/html/.htaccess
DirectorySlash Off
RewriteEngine On
RewriteRule ^eSCL/ScannerStatus/?$ eSCL/ScannerStatus/index.php [L]
RewriteRule ^eSCL/ScannerCapabilities/?$ eSCL/ScannerCapabilities/index.php [L]
RewriteRule ^eSCL/ScanJobs/?$ eSCL/ScanJobs/index.php [L]
RewriteRule ^eSCL/Scans/?$ eSCL/Scans/index.php [L]
в глобальном разделе apache2.conf, который у меня есть (это, очевидно, то, что я должен был сделать, чтобы получить индексные файлы. php для загрузки по умолчанию снова):
<Directory "/var/www/html">
DirectoryIndex index.php index.htm
</Directory>
<Directory "/var/www/html/scans/*">
DirectoryIndex index.php index.htm
</Directory>
<Directory "/var/www/html/eSCL/ScannerStatus">
DirectoryIndex index.php index.htm
</Directory>
<Directory "/var/www/html/eSCL/ScannerCapabilities">
DirectoryIndex index.php index.htm
</Directory>
<Directory "/var/www/html/eSCL/ScanJobs">
DirectoryIndex index.php index.htm
</Directory>
Вот что захватывает wireshark при запросе http://192.168.1.50/eSCL/ScannerStatus (без трейлинг-листа sh)
HTTP/1.1 301 Moved Permanently
Date: Thu, 06 Feb 2020 16:56:00 GMT
Server: Apache/2.4.25 (Raspbian)
Location: http://192.168.1.50/eSCL/ScannerStatus/
Content-Length: 327
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a
href="http://192.168.1.50/eSCL/ScannerStatus/">here</a>.</p>
<hr>
<address>Apache/2.4.25 (Raspbian) Server at 192.168.1.50 Port 80</address>
Я также специально исключил файлы с поддержкой сайтов в apache2.conf с
# Include the virtual host configurations:
# IncludeOptional sites-enabled/*.conf
Я также проверил:
pi@raspberrypi:/etc/apache2 $ sudo a2enmod rewrite
Module rewrite already enabled
pi@raspberrypi:/etc/apache2 $ sudo a2enmod dir
Module dir already enabled