Pages : 1
#1 Le 06/10/2012, à 10:33
- TEXMAN
[Résolu]RewriteRule sans passer par .htacces
Bonjour,
J'utilise Wordpress et il fait des Rewriterule dans .htaccess et sur ma config ça marche...Mais j'ai lu dans la doc appache que si on peut il faut mieux éviter de passer par .htaccess et faire cela directement dans le fichier de conf du serveur :
doc apache
Voici ce que me met wordpress dans le .htacces:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /www_endev/wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /www_endev/wordpress/index.php [L]
</IfModule>
Voila ce que j'ai mis dans le apache2.conf
Options +FollowSymlinks
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
#je change en All et je rajoute les rewwrite engine te inherit
AllowOverride All
RewriteEngine On
RewriteOptions Inherit
RewriteBase /www_endev/wordpress/
</Directory>
#je mets les conditions de rewrite
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /www_endev/wordpress/index.php [L]
RewriteLog /etc/apache2/rewrite.log
RewriteLogLevel 9
</IfModule>
Mais quand je supprime le .htaccess les directives du apache2.conf ne fonctionnent pas en tout cas j'ai pas de rewriting.
Quelqu'un a-t-il une idée? Merci
Dernière modification par TEXMAN (Le 06/10/2012, à 18:27)
Hors ligne
#2 Le 06/10/2012, à 13:45
- bruno
Re : [Résolu]RewriteRule sans passer par .htacces
Relis la doc
« Il est toujours préférable de définir les directives que vous pouvez inclure dans un fichier .htaccess dans une section Directory, car elles produiront le même effet avec de meilleures performances. »
Il faut mettre tes règles de réécriture dans la section <directory> et tant qu'à faire si tu n'utilises plus les htaccess mettre AllowOverride sur none
Il serait encore plus propre de ne pas toucher au fichier apache2.conf (susceptible d'être écrasé par une mise à niveau) et de définir tout cela dans un VirtualHost.
#3 Le 06/10/2012, à 16:33
- TEXMAN
Re : [Résolu]RewriteRule sans passer par .htacces
Ok j'ai fait plus simple j'ai mis ça dans un virtualhost sous apache2/sites-available/default
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
RewriteEngine On
RewriteOptions Inherit
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 ::1/128 # local
Allow from 192.168.1.0/24 # reseau
# je mets un rewrite simple
RewriteRule ^/a\.html$ /b.html [PT]
</Directory>
j'ai mis deux fichiers html a.html et b.html sous var/www/ mais il se passe rien???
quand je tape http://192.168.x.x/a.html je vais sur la page a.html au lieu de la page b.html ...idem lorsque je charge les pages avec des liens internes du genre <a href="a.html">..</a>
Hors ligne
#4 Le 06/10/2012, à 17:33
- bruno
Re : [Résolu]RewriteRule sans passer par .htacces
Avec ceci cela devrait marcher :
RewriteEngine On
RewriteBase /
RewriteRule ^a.html$ /b.html [P,T]
#5 Le 06/10/2012, à 18:19
- TEXMAN
Re : [Résolu]RewriteRule sans passer par .htacces
RewriteRule ^a.html$ /b.html [P,T]
avec cela j'ai une erreur 403
you don't have permission to access /a.html on this server
j'ai essayé avec
RewriteRule ^/a.html$ /b.html [P,T]
et là pas de redirection de a.html bers b.html
OUF à force de tatonnement j'ai réussi:
RewriteBase /var/www/
RewriteRule ^a.html$ /b.html [R]
Me si j'ai pas tout compris ...mais à partir d'un truc qui marche...ya de l'espoir
Hors ligne
#6 Le 06/10/2012, à 19:45
- bruno
Re : [Résolu]RewriteRule sans passer par .htacces
La réécriture est assez tordue dans le contexte d'un dossier : (https://httpd.apache.org/docs/current/f … write.html)
« Le prefixe supprimé se termine toujours par un slash, ce qui signifie que la comparaison s'effectue avec une chaîne qui ne comporte jamais de slash de début. Ainsi, un modèle contenant ^/ ne correspondra jamais dans un contexte de répertoire. »
#7 Le 07/10/2012, à 10:45
- TEXMAN
Re : [Résolu]RewriteRule sans passer par .htacces
OUI effectivement j'étais en train de relire et relire
apache2 les RewriteRule
J'avais a tord zappé :
Qu'est-ce qui est comparé ?
et aussi le §
Réécritures dans un contexte de répertoire
Bien vu Merci
Hors ligne
Pages : 1