Page 1 sur 1
Modifier htaccess
Posté : 29 avr. 2013, 11:41
par msgbrr
Bonjour,
Voila j'aimerais savoir si c'est possible de faire un script php qui modifierait htaccess !
Je m'explique, lorsque je ferme mon site pour maintenance j'ajoute le code suivant
Code : Tout sélectionner
RewriteEngine on
RewriteCond %{REQUEST_URI} !car.html
RewriteCond %{REQUEST_FILENAME} !(css|img).+$,
RewriteCond %{REMOTE_ADDR} !^xx\.xx\.xx\.xx$
RewriteRule (.*) /car.html [R,L]
J'aimerais un script avec un menu déroulant ou l'on choisit fermer ou ouvert, est-ce possible ?
Merci de votre aide
Re: Modifier htaccess
Posté : 29 avr. 2013, 11:50
par ghost5922
Bonjour,
oui cela doit etre possible il suffi d'avoir un fichier php qui va générer le fichier htacces selon ton choix
exemple
<?php
$statut=(int)$_POST['statut'];
$contenu='';
if($statut==1){
}
else{
$contenu.='RewriteEngine on';
$contenu.='RewriteCond %{REQUEST_URI} !car.html ';
$contenu.='RewriteCond %{REQUEST_FILENAME} !(css|img).+$,';
$contenu.='RewriteCond %{REMOTE_ADDR} !^xx\.xx\.xx\.xx$';
$contenu.='RewriteRule (.*) /car.html [R,L]';
}
// création du fichier
$f = fopen('.htaccess', "w+");
// écriture
fputs($f, $contenu );
// fermeture
fclose($f);
?>
Re: Modifier htaccess
Posté : 29 avr. 2013, 13:39
par msgbrr
Et pour l'inverse est il possible de supprimer ce contenu mais uniquement ce contenue
Re: Modifier htaccess
Posté : 29 avr. 2013, 14:00
par ghost5922
Bonjour,
Ben tu as 2 condition tu mets le htacces normal dans
le if($statut==1){
HTACCESS NORMAL
}
else{
HTACCESS SITE MAINTENANCE
}
après si tu veux juste efface le contenu
tu fais un file_get_contents du .htaccess tu fais un replace de la ligne par rien et tu récrit le fichier
Re: Modifier htaccess
Posté : 29 avr. 2013, 14:52
par msgbrr
Si j'ai bien compris c'est
Code : Tout sélectionner
If($statut==1){
Contenue du htaccess classique
}
Else{
Contenue du htaccess classique
+
Code de maintenance
}
C'est ça ?
Re: Modifier htaccess
Posté : 29 avr. 2013, 15:41
par ghost5922
Bonjour,
oui
voir meme
Contenue du htaccess classique
If($statut==0){
+
Code de maintenance
}
Re: Modifier htaccess
Posté : 01 mai 2013, 09:41
par msgbrr
Désolé ça ne marche pas, voici a quoi ressemble mon script
<?php
$statut=(int)$_POST['statut'];
$contenu='';
if($statut==1){
$contenu.='ErrorDocument 404 /erreur_404.html';
}
else{
$contenu.='RewriteEngine on';
$contenu.='RewriteCond %{REQUEST_URI} !car.html ';
$contenu.='RewriteCond %{REQUEST_FILENAME} !(css|img).+$,';
$contenu.='RewriteCond %{REMOTE_ADDR} !^xx\.xx\.xx\.xx$';
$contenu.='RewriteRule (.*) /car.html [R,L]'; }
// création du fichier $f = fopen('.htaccess', "w+"); // écriture fputs($f, $contenu ); // fermeture fclose($f);
?>
Re: Modifier htaccess
Posté : 01 mai 2013, 15:45
par ghost5922
Bonjour,
pouvez vous mettre votre formulaire ainsi que le fichier generer et me dire l'erreur ou ce qui marche pas ?
Re: Modifier htaccess
Posté : 01 mai 2013, 22:10
par msgbrr
Désolé mais je n'ai pas de formulaire !
Re: Modifier htaccess
Posté : 01 mai 2013, 22:54
par ghost5922
Bonjour,
je vous envoi une variable en POST cela veux dire qui a un formulaire sinon essaie celui si
<?php
$statut=(int)$_GET['statut'];
$contenu='';
//code si on veux activer le site
if($statut==1){
$contenu.='ErrorDocument 404 /erreur_404.html';
}
//code pour desactiver le site
else{
$contenu.='RewriteEngine on';
$contenu.='RewriteCond %{REQUEST_URI} !car.html ';
$contenu.='RewriteCond %{REQUEST_FILENAME} !(css|img).+$,';
$contenu.='RewriteCond %{REMOTE_ADDR} !^xx\.xx\.xx\.xx$';
$contenu.='RewriteRule (.*) /car.html [R,L]';
}
// création du fichier
$f = fopen('.htaccess', "w+");
// écriture
fputs($f, $contenu );
// fermeture
fclose($f);
?>
pour activer le site page.php?statut=1
pour desactiver le site page.php?statut=0
Re: Modifier htaccess
Posté : 01 mai 2013, 23:41
par moogli
salut,
se ne serait pas plus simple d'avoir deux fichiers et de switcher les noms ?
Tu ne risque pas de te mélanger les pinceaux et cela évite les problèmes si tu veux modifier le fichier tu ne touche pas au code php
@+
Re: Modifier htaccess
Posté : 04 mai 2013, 12:09
par msgbrr
Ce script par exemple ?
<?php rename(".htaccess", ".htaccess3"); ?>
<?php rename(".htaccess2", ".htaccess"); ?>
<?php rename(".htaccess3", ".htaccess2"); ?>