Modifier htaccess

Eléphanteau du PHP | 37 Messages

29 avr. 2013, 11:41

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

Mammouth du PHP | 619 Messages

29 avr. 2013, 11:50

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

?>

Eléphanteau du PHP | 37 Messages

29 avr. 2013, 13:39

Et pour l'inverse est il possible de supprimer ce contenu mais uniquement ce contenue

Mammouth du PHP | 619 Messages

29 avr. 2013, 14:00

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

Eléphanteau du PHP | 37 Messages

29 avr. 2013, 14:52

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 ?

Mammouth du PHP | 619 Messages

29 avr. 2013, 15:41

Bonjour,

oui :)

voir meme


Contenue du htaccess classique

If($statut==0){
+
Code de maintenance
}

Eléphanteau du PHP | 37 Messages

01 mai 2013, 09:41

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

?>


Mammouth du PHP | 619 Messages

01 mai 2013, 15:45

Bonjour,

pouvez vous mettre votre formulaire ainsi que le fichier generer et me dire l'erreur ou ce qui marche pas ?

Eléphanteau du PHP | 37 Messages

01 mai 2013, 22:10

Désolé mais je n'ai pas de formulaire !

Mammouth du PHP | 619 Messages

01 mai 2013, 22:54

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

01 mai 2013, 23:41

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


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 37 Messages

04 mai 2013, 12:09

Ce script par exemple ?
 <?php rename(".htaccess", ".htaccess3"); ?>

<?php rename(".htaccess2", ".htaccess"); ?>

<?php rename(".htaccess3", ".htaccess2"); ?>