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"); ?>