franc
Goto Top

Apache 2.4 - sonderbare 302 Umleitung nach neuem Alias

Hallo
ich steh auf dem Schlauch!
Ich hab auf Windows 10 (64-Bit) einen Apache 2.4.54 mit PHP 8.0 laufen, nicht als WAMP o.ä. sondern richtig installiert.
Damit teste ich lokal Webseiten. Die meisten habe ich in meinem DocumentRoot (c:\Apache24\htdocs\) aber manche in einem separaten Projektverzeichnis. Dann erstelle ich einen Alias dafür, zB.:

# ff Bookmarks Suche in der places.sqlite
Alias /firefox "d:/svn/franc/PHP/Firefox"  
<Directory "d:/svn/franc/PHP/Firefox">  
	Require all granted
</Directory>

Jetzt sollte ein:

http://localhost/firefox

die index.php (oder index.html, habe ich in der httpd.conf beides drin) im Verzeichnis d:\svn\franc\PHP\Firefox\ aufrufen.
Macht er aber nicht, sondern es wird eine etwas sonderbare URL:

http://localhost/contao/www.google.com

in die Adresszeile von meinem Firefox gesetzt, die nicht gefunden wird (404).
Im access.log vom Apache steht dazu:

127.0.0.1 - - [27/Jan/2023:16:45:40 +0100] "GET /ff HTTP/1.1" 302 222  
127.0.0.1 - - [27/Jan/2023:16:45:40 +0100] "GET /contao/www.google.com HTTP/1.1" 404 196  

also eine temporäre Umleitung (302) auf diese sonderbare Seite.

Contao hatte ich tatsächlich auch mal installiert, aber im httpd.conf finde ich keinerlei Textvorkommen von contao, auch nicht in einer .htaccess (schon gar nicht in diesem Firefox Verzeichnis, da war zwar eine .htaccess aber ohne Rewrite o.ä. und die habe ich dann auch umgenannt).

Ich hab das gesamte htdocs Verzeichnis (DocumentRoot) nach diesem Suchtext durchsucht, nichts.

Auch mit /index.php angehängt (also localhost/firefox/index.php) das selbe.

Auch wenn ich die index.php ganz leer mache. Oder wenn ich eine index.html erstelle und diese direkt aufrufe.
Auch, das überrascht mich speziell, in anderen Browsern, Opera, Chrome, alles das selbe, liegt also nicht am Browser.
Den Apache natürlich zig mal neu gestartet. Auch in die hosts (c:\WINDOWS\System32\drivers\etc\hosts) rein geschaut.

Es muss mit diesem Alias zusammenhängen, ich hatte das vor paar Tagen schon mal, eine andere Seite, recht ähnlich zwar, teilweise kopiert nämlich, aber da war es dann einfach weg, das Problem, wusste nicht warum.
Evtl. war da ein Rechnerneustart ursächlich, aber nein, Windows Neustart ändert auch nichts.

Ohne den Alias, also wenn ich das per Alias verlinkte Verzeichnis komplett in den DocumentRoot kopiere, geht es problemlos.

Ich steh echt auf dem Schlauch, was kann das denn noch sein, ich habe schon alles nach dem Suchtext contao durchsucht, Fehlanzeige.

Danke für Tipps
franc

EDIT: Apache auf 2.4.55 aktualisiert, ohne Änderung. Testweise einen anderen Alias erstellt, auf ein Verzeichnis in der gleichen Ebene, mit minimalem Inhalt (index.html), der selbe Fehler. Aber der vor ein paar Tagen erstellte Alias ist auch in der Ebene und geht.

Content-ID: 5677753252

Url: https://administrator.de/contentid/5677753252

Ausgedruckt am: 16.11.2024 um 22:11 Uhr

5175293307
5175293307 28.01.2023 aktualisiert um 14:17:27 Uhr
Goto Top
Wenn wirklich kein Rewrite/Alias etc. mehr der Apache Config und den .htaccess vorhanden ist dann wird das vermutlich ein Cache-Problem sein. Vermutlich wurde damals auf den Alias selbst ein 301 Redirect (permanent) statt 302 (temporär) gesetzt, die verewigen sich gerne mal im Browser-Cache. Also diesen löschen, oder per Privat-Modus testen.
Auch mal nach evt. noch vorhandenen und aktiven externen Modulen in der Config prüfen.

Gruß nach Algerien
wurstel
franc
franc 30.01.2023 um 14:01:30 Uhr
Goto Top
Der Browser Cache kann es ja nicht sein, erstens habe ich ja einen nagelneuen Alias erstellt, mit dem selben Problem und zweitens habe ich verschiedene Browser probiert, Cache gelöscht usw. alles das selbe.
Zudem kommt das /contao/www.google.com ja auch vom Apache, kann man im Log sehen.

Externe Module habe ich nur das PHP Modul aktiv:

LoadModule php_module "c:/Program Files/PHP/8.0/php8apache2_4.dll"  

Aber auch wenn ich PHP deaktiviere (Modul auskommentiere) und Apache neu starte, ist der Fehler noch da.

Die Apache Module habe ich an:

LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule socache_dbm_module modules/mod_socache_dbm.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so

Ich dachte es wäre eine Berechtigungsgeschichte, aber die Verzeichnisse wo der Alias zeigt sind alle auf Jeder darf alles.
Völlig unklar ist mir, warum das andere Verzeichnis, bei dem es zuerst auch nicht ging, jetzt anstandslos geht.
Alles ist scheinbar gleich, aber irgendwas muss anders sein.
5175293307
5175293307 30.01.2023 aktualisiert um 14:15:06 Uhr
Goto Top
Schau mal ob da evt. noch ein IIS mit Rewrite Modul werkelt. Und stelle mal die Original-Apache Module aus dem Original Archiv wieder her. Ansonsten eben Apache mal komplett runterschmeißen und wieder neu drauf pappen (evt. vorhandene Anpassungen vorher sichern und Verzeichnis komplett löschen). Wenn's dann noch da ist hast du einen Pumuckl 😂.
franc
Lösung franc 30.01.2023 aktualisiert um 15:28:44 Uhr
Goto Top
Ich habe es gefunden!!!

Jetzt habe ich mal testweise einen Alias auf ein Verzeichnis auf dem C-Laufwerk (in Temp) gemacht und das ging auf Anhieb!
Also hier meine httpd.conf:

Alias /aliastest "d:/svn/franc/PHP/TabellenFelder"  
<Directory "d:/svn/franc/PHP/TabellenFelder">  

	Require all granted

</Directory>

Alias /aliastest2 "c:/Temp/TabellenFelder"  
<Directory "c:/Temp/TabellenFelder">  

	Require all granted

</Directory>

und die Ausgabe im access.log:

127.0.0.1 - - [30/Jan/2023:14:39:37 +0100] "GET /aliastest2 HTTP/1.1" 301 236  
127.0.0.1 - - [30/Jan/2023:14:39:37 +0100] "GET /aliastest2/ HTTP/1.1" 200 3200  
127.0.0.1 - - [30/Jan/2023:14:39:37 +0100] "GET /aliastest2/tabellen_feldersuchen.css HTTP/1.1" 200 269  
127.0.0.1 - - [30/Jan/2023:14:41:31 +0100] "GET /aliastest HTTP/1.1" 302 222  
127.0.0.1 - - [30/Jan/2023:14:41:31 +0100] "GET /contao/www.google.com HTTP/1.1" 404 196  

also aliastest2 das auf C: verlinkt geht, aliastest, das auf D: verlinkt, geht nicht.

Also bin ich Schritt für Schritt in die Verzeichnisse rein und es ging sofort im Verzeichnis d:/svn/franc schon los, die Umleitung auf contao/www.google.com und wer hätte es gedacht, in dem Verzeichnis franc ist eine .htaccess mit Inhalt:

RewriteEngine On
RewriteBase /contao
RewriteRule ^ www.google.com [R,L]

Apache läuft ja durch alle Verzeichnisse durch und schaut, ob eine .httaccess drin ist und zieht die dann auch.
Die ist von 2014, ich weiß nun gar nicht mehr, warum ich die und wie ich die je eingebaut hatte und warum nur!?
Egal, Problem war hausgemacht und ist gelöst.
Warum ein anderes Verzeichnis unterhalb aber geht, liegt wohl daran, dass dort auch eine .htaccess drin ist, die dann die Blöde alte .htaccess überschreibt. Gut zu wissen.