PHP router auf subdomain?

3 Antworten

Hast du dir denn mal ausgeben lassen, was in $_SERVER['REQUEST_URI'] drin steht? Ich vermute mal, dass dort der Slash noch mit drin ist und dann /kontakt statt kontakt in $url ist.

Woher ich das weiß:Berufserfahrung – Entwickle seit > 20 Jahren Anwendungen mit PHP.
crRaphi 
Fragesteller
 29.06.2023, 14:37

Er zeigt mir '/' an und wenn ich dann /projekte oder einen anderen Link aufrufe verlasse ich anscheinend die index.php, da er mir die uri nicht mehr ausgibt

0
Babelfish  29.06.2023, 15:53
@crRaphi

Du hast also gar keine .htaccess mit passenden Rewrite-Regeln? Dann kann das nicht funktionieren.

0
 Er funktioniert Localhost

Damit hat nur dein Router nichts am Hut. Localhost wird bereits im Rechner über einen virtuellen Loopbackadapter abgefangen und gelangt gar nicht an den Router.

Ich habe folgendes Problem, dass mein Router auf meiner Subdomain (All-Inkl) nicht funktioniert. 

Hier ist auch nicht dein Router verantwortlich, sondern vielmehr die Einstellungen des Servers - und die wahrscheinlichste Ursache dürfte hier sein, dass irgendwo in deinem Code ein Fehler liegt, der auf eine nicht existierende Datei verweist. Sonst hättest du als Fehlermeldung nicht "not found", sondern eher etwas wie "kann den Server nicht erreichen/nicht finden"....

crRaphi 
Fragesteller
 29.06.2023, 14:39

Ich habe meine require & include_once gerade kontrolliert und die passen alle und die Dateien existieren auch

0

Hast du die .htaccess Datei konfiguriert? In der musst du einstellen, dass er index.php nicht verlassen darf. Sonst bekommt index.php nie die Werte hinter der URL, weil er eine andere PHP Seite aufrufen will

crRaphi 
Fragesteller
 29.06.2023, 14:42

In meiner .htaccess steht nur:

<IfModule mod_expires.c>
  ExpiresActive On
 # img
  ExpiresByType assets/img/jpg "access plus 1 week"
  ExpiresByType assets/img/png "access plus 1 week"
  ExpiresByType assets/img/svg "access plus 1 week"

  # Fonts
  ExpiresByType assets/font/woff2 "access plus 1 week"
  ExpiresByType assets/font/woff "access plus 1 week"

  # CSS, JavaScript
  ExpiresByType style/css "access plus 1 week"
  ExpiresByType js/js "access plus 1 week"

</IfModule> 

Wie kann ich ihm das sagen?

0
crRaphi 
Fragesteller
 29.06.2023, 14:45
@crRaphi

Ich habe das jetzt ergänzt und es ändert sich garnichts: 

<FilesMatch "^(index\.php)$">
    ExpiresDefault "access plus 0 seconds"
    Header set Cache-Control "private, no-store, no-cache, must-revalidate"
    Header set Pragma "no-cache"
  </FilesMatch> 
0
FaTech  29.06.2023, 14:47
@crRaphi

Du machst sagst ja auch nur, wenn index match, dann das und das. Aber index matched ja nicht bei einer anderen Unterseite

1
crRaphi 
Fragesteller
 29.06.2023, 14:48
@FaTech

Verstehe ich nicht ganz - was muss ich machen?

0
FaTech  29.06.2023, 14:50
@crRaphi

Du musst auf die index umleiten.

Musste gerade bei mir schauen. Ich mache es so:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(?!.*index\.html$).*$ /index.html [L]

Wenn nicht index, leite zu index. Grund warum nur bei nicht index: Bei index ist er schon bei index und er soll keinen loop erzeugen

0
crRaphi 
Fragesteller
 29.06.2023, 14:52
@FaTech

Ich habe es es auf das geändert

<IfModule mod_expires.c>
 ExpiresActive On

 # img
 ExpiresByType assets/img/jpg "access plus 1 week"
 ExpiresByType assets/img/png "access plus 1 week"
 ExpiresByType assets/img/svg "access plus 1 week"

 # Fonts
 ExpiresByType assets/font/woff2 "access plus 1 week"
 ExpiresByType assets/font/woff "access plus 1 week"

 # CSS, JavaScript
 ExpiresByType style/css "access plus 1 week"
 ExpiresByType js/js "access plus 1 week"

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(?!.*index\.html$).*$

</IfModule>

Der Server sagt:

Interner Serverfehler
Auf dem Server ist ein interner Fehler aufgetreten oder Fehlkonfiguration und konnte nicht abgeschlossen werden Ihre Anfrage.
Bitte wenden Sie sich an den Serveradministrator unter ##### sie über den Zeitpunkt des Auftretens dieses Fehlers zu informieren, und die Aktionen, die Sie kurz vor diesem Fehler ausgeführt haben.
Weitere Informationen zu diesem Fehler sind möglicherweise verfügbar im Server-Fehlerprotokoll. 
0
FaTech  29.06.2023, 14:53
@crRaphi

Nimm es aus dem IfModule raus. Ich bin kein htaccess Experte, dadurch muss ich selber gerade etwas raten, aber eventuell liegt es daran.

0
crRaphi 
Fragesteller
 29.06.2023, 14:56
@FaTech

Der Fehler bleibt:

<IfModule mod_expires.c>
  ExpiresActive On

  # img
  ExpiresByType assets/img/jpg "access plus 1 week"
  ExpiresByType assets/img/png "access plus 1 week"
  ExpiresByType assets/img/svg "access plus 1 week"

  # Fonts
  ExpiresByType assets/font/woff2 "access plus 1 week"
  ExpiresByType assets/font/woff "access plus 1 week"

  # CSS, JavaScript
  ExpiresByType style/css "access plus 1 week"
  ExpiresByType js/js "access plus 1 week"



</IfModule>

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(?!.*index\.html$).*$  
0
FaTech  29.06.2023, 15:00
@crRaphi

Ah, sehe ich jetzt erst. Du hast scheinbar meinen htaccess Code zu schnell abgegriffen. Hatte den vorhin korrigiert, weil ich einen Fehler gemacht hatte. Kopier den nochmal neu von mir da oben

0
crRaphi 
Fragesteller
 29.06.2023, 15:00
@FaTech

Danke, habe es jetzt mit deiner Hilfe und Chat GPT geschafft:

<IfModule mod_expires.c>
  ExpiresActive On

  # img
  ExpiresByType assets/img/jpg "access plus 1 week"
  ExpiresByType assets/img/png "access plus 1 week"
  ExpiresByType assets/img/svg "access plus 1 week"

  # Fonts
  ExpiresByType assets/font/woff2 "access plus 1 week"
  ExpiresByType assets/font/woff "access plus 1 week"

  # CSS, JavaScript
  ExpiresByType style/css "access plus 1 week"
  ExpiresByType js/js "access plus 1 week"

</IfModule>

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^ index.php [L]
0
FaTech  29.06.2023, 15:01
@crRaphi

Ja, dass was ich sagte :) ... das hat ChatGPT für dich korrigiert. Allerdings suchst du nach ^, also Anfang. Somit müsste der eigentlich immer triggern und in einen loop gehen oder habe ich einen Denkfehler? Deshalb hat mein Code mehr da stehen, um loops zu vermeiden

RewriteRule ^(?!.*index\.html$).*$ /index.html [L]
0