[Servertechnik, quasi] zeitgesteuert .htaccess setzen?

Tuxman

Banned
Registriert
Feb. 2007
Beiträge
1.497
Sers,

ich würde an einem bestimmten Tag gern eine Stunde lang meine .htaccess durch eine andere ersetzen. Wie geht das am einfachsten?
 
Habe ich nicht direkt, Cronjobs mach ich grundsätzlich via cronjob.de ... gibt es da nicht eine elegante PHP-Lösung, die ich cronjob.de übergeben könnte?
 
müsse gehen wenn die php datei rechte hat um in dem ordner die .htaccess datei umzubenennen. mehr brauchst du nicht, du hast 2 .htaccess wobei eine einfach immer umbenannt wird.
 
Na, dazu muss ich nachsehen, welche gerade aktiv ist...

Hast du gerade mal ein Codebeispiel dafür parat?

:o
 
Was meinst du mit "welche gerade aktiv ist"? Selbstverständnis ist die Datei "aktiv", die den Namen ".htaccess" trägt. Die andere kannst du ja jeweils umbennen.

Ehrlich gesagt weiß ich aber gar nicht, ob PHP überhaupt Zugriff auf diese Datei hat. Sowas habe ich noch nie versucht.
 
Müsste es, ja.

Ich meinte mit "aktiv": Ich habe eine .htaccess und eine .htaccess.alternativ. Ich muss ja erst die eine umbenennen und dann die andere, aber wie nenne ich dann die eine? Usw...
 
Du kannst es auch einfach so machen, dass du immer eine .htaccess_1 und eine .htaccess_2 hast und dann die über die .htaccess kopierst, die du gerade brauchst.
 
Ah, ja, danke, das ist ein guter Plan. :-)

Wie würde das in PHP gehen?
 
Zuletzt bearbeitet:
Fatal Error schrieb:
müsse gehen wenn die php datei rechte hat um in dem ordner die .htaccess datei umzubenennen.
Ähm... nur als konstruktiv/kritische Anmerkung... aber wenn PHP Rechte auf die .htaccess hat, ist das ein absolut eklatantes Sicherheitsloch. Selbst der Apache-Prozess bzw. der User unter dem er läuft sollte die nur lesen dürfen.
 
Innerhalb der .htaccess sind also keine Bedingungen möglich, um, abhängig vom aktuellen Zeitpunkt, eine Seite umzuleiten?
 
Ich würde gern, abhängig von der Tageszeit, alle Seiten unterhalb von tuxproject.de (sind so einige, daher bringt mir nur header() in einer index.php nicht viel) auf eine andere Seite umleiten. Einmalig.
 
Ja dann mach die entsprechenden RewriteCond-Einträge zur Einschränkung (kannst ja nach Tag, Monat, Zeit usw. einschränken) und darunter eine RewriteRule so wie auf der verlinkten Seite. Wenn eines der mittels der einzelnen RewriteCond-Einträge definierten Kriterien nicht erfüllt wird, so werden die Seiten "normal" ausgeliefert.
Beispiel um am 26.09.09 zwischen 22 und 24 Uhr auf google umzuleiten:
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
 
RewriteCond %{TIME_DAY}.%{TIME_MON}.%{TIME_YEAR} ^26.09.2009$
RewriteCond %{TIME_HOUR} >21
RewriteCond %{TIME_HOUR} <24
RewriteRule .* http://www.google.de/
Zu beachten ist, dass sich das an der Serverzeit orientiert. Also evtl. vorher mal ausprobieren. Nicht dass der Server nach amerikanischer Zeitzone oder so läuft ;)
 
Sehr geil, besten Dank! - Dass die Rewrite-Engine das beherrscht, wusste ich noch nicht. Wunderbar! :)
Ergänzung ()

Doch noch mal 'ne Frage: Ich bekomm immer Error 500, wenn ich das versuche.

Meine .htaccess sieht derzeit insgesamt so aus:

Code:
ErrorDocument 404 /404/404.php

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^largesmall
RewriteRule ^.* - [F,L]

RewriteCond %{TIME_DAY}.%{TIME_MON}.%{TIME_YEAR} ^27.09.2009$
RewriteCond %{TIME_HOUR} == 15
RewriteRule .* http://seitedieichaufrufenwill.de

(Letzteres ist natürlich unkenntlich gemacht.)

Wo liegt mein Fehler?
 
Zurück
Oben