.htaccess umleiten, wenn Datei existiert
Ich bin auf der Suche zu verwenden .htaccess Umleitung zu einer Seite oder einem anderen auf der Grundlage, ob eine Datei existiert in dem Verzeichnis.
Im Prinzip brauche ich alle Besucher index.php gesendet werden die entweder home.php Seite wenn splash.php nicht vorhanden, oder splash.php Seite wenn splash.php hat im Verzeichnis vorhanden ist, so weit ich diese...
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} index.php
RewriteCond %{DOCUMENT_ROOT}/splash.php -f
RewriteCond %{SCRIPT_FILENAME} !splash.php
RewriteRule ^.*$ /splash.php [L]
Dieser schickt die Besucher mysite.com/splash.php wenn es vorhanden ist nur wenn ich gezielt haben mysite.com/index.php als meine URL, es funktioniert nicht, wenn nur die Verwendung der mysite.com URL.
Verstehe ich die ersten 3 Zeilen von meinem code, aber nicht das !splash.php -f bit (ich habe das von einigen anderen redirect-code, den ich gefunden SO).
Wie kann ich die Umleitung zu home.php wenn splash.php nicht vorhanden ist?
Prost!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese Regel. Sollte es auf mysite.com/index.php, mysite.com/oder mysite.com
|
in deiner regex?Müssen Sie es zu brechen in mehrere Blöcke, so probieren (geht splash.php wenn es vorhanden ist, unabhängig davon, ob oder nicht Sie haben index.php in den Namen der Datei, und dann, wenn splash existiert nicht geht home.php):
mate, ich habe eine schnelle .htaccess und es funktioniert perfekt für mich. Ich bin mir nicht sicher, was könnte anders sein, in Ihrer Konfiguration wenn. Um Verwirrung zu vermeiden, hier ist der Apache (2) vhost, dass ich Sie mit:
Wenn ich beide Dateien in das Verzeichnis, ich bin umgeleitet splash.php (auch wenn der name der Datei in der url nicht ändern - intern bin ich umgeleitet auf splash.php). Wenn ich umbenennen splash.php (oder entfernen Sie), sehe ich nur index.php. Wenn ich es wieder, die Umleitung funktioniert wie normal. Wenn ich gezielt setzen index.php in der url, mit beiden Dateien, ich bin umgeleitet splash.php.
Fwiw, eines der besten Dinge zu erinnern, über mod_rewrite ist diese: