Interdire le rewritage de certaines pages

Discussion sur le mod rewrite d'Apache : .htaccess, utilisation, expériences... Réécriture d'URL (URL rewriting).

Modérateur: Modérateurs

Interdire le rewritage de certaines pages

Messagede gcvoiron » Sam Déc 16, 2006 12:00 am

Bonjour,

Je vais utiliser l'URL rewriting sur un de mes sites. La page site.php?nomrewrit=blabla portera sur blabla.php.
Le problème est que le rewriting rewrite aussi des pages qui ne sont pas à rewriter.
Comment faire pour interdire le rewriting de certaines pages?

Merci.
gcvoiron
PR1
PR1
 
Messages: 122
Inscription: Jeu Juin 08, 2006 10:51 am

Publicité

Messagede dcz » Sam Déc 16, 2006 12:04 am

Faut voir ça dépends du mod et du script.

Si le mod de réécriture d'url utilises ob_start() au début du code, tu dois pouvoir ajouter des condition en fin de code quand le buffer est traité et que les url sont réécrite.

C'est fait en général en deux ou trois lignes à cet endroit.

Le truc c'est de trouver ou et d'en savoir plus sur ton cas précis ;)

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21238
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede gcvoiron » Sam Déc 16, 2006 4:46 am

Dans mon cas, il y a ce htaccess :
Code: Tout sélectionner
ErrorDocument 404 http://www.benefweb.com/404.php
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^benefweb\.com$ [NC]
RewriteRule ^(.*) http://www.benefweb.com/$1 [QSA,L,R=301]
RewriteRule ^([0-9a-zA-Z-]+)\.php$ /site.php?nomrewrit=$1 [QSA,L]


# Forum
RewriteRule ^forum/.+-vc([0-9]+)\.html$ forum/index.php?c=$1 [QSA,L]
RewriteRule ^forum/.+-vf([0-9]+)-([0-9]+)\.html$ forum/viewforum.php?f=$1&start=$2 [QSA,L]
RewriteRule ^forum/.+-vf([0-9]+)\.html$ forum/viewforum.php?f=$1 [QSA,L]
RewriteRule ^forum/topic([0-9]+)-([0-9]+)\.html$ forum/viewtopic.php?t=$1&start=$2 [QSA,L]
RewriteRule ^forum/topic([0-9]+)\.html$ forum/viewtopic.php?t=$1 [QSA,L]
RewriteRule ^forum/post([0-9]+)\.html$ forum/viewtopic.php?p=$1 [QSA,L]
RewriteRule ^forum/membre([0-9]+)\.html$ forum/profile.php?mode=viewprofile&u=$1 [QSA,L]

#mx Google Sitemaps
RewriteRule ^forum/sitemaps.xml$ forum/sitemap.php [L]
RewriteRule ^forum/forum-sitemap-([0-9]+).xml$ forum/sitemap.php?fid=$1 [L]
RewriteRule ^forum/sitemap-forum.xml$ forum/sitemap.php?forum [L]

# mx Sitemaps
RewriteRule ^forum/sitemaps\.html$ forum/sitemaps.php [QSA,L]
RewriteRule ^forum/forum-m\ap\.html$ forum/sitemaps.php?fim [QSA,L]
RewriteRule ^forum/.+-fmp([0-9]+)-([0-9]+)\.html$ forum/sitemaps.php?fmp=$1&start=$2 [QSA,L]
RewriteRule ^forum/.+-fmp([0-9]+)\.html$ forum/sitemaps.php?fmp=$1 [QSA,L]
RewriteRule ^forum/.+-sc([0-9]+)\.html$ forum/sitemaps.php?c=$1 [QSA,L]


Et j'appel mes pages avec un :
Code: Tout sélectionner
<a href="'.$lsinclassables[$i][nomrewrit].'.php">Fiche d&eacute;taill&eacute;e</a>
gcvoiron
PR1
PR1
 
Messages: 122
Inscription: Jeu Juin 08, 2006 10:51 am

Messagede dcz » Sam Déc 16, 2006 12:15 pm

En fait, si tu construis tes liens réécrits "manuellement" :

<a href="'.$lsinclassables[$i][nomrewrit].'.php">Fiche d&eacute;taill&eacute;e</a>

Il suffit d'ajouter des condition pour décider de réécrire ou pas :
Code: Tout sélectionner
if ($rewrite) {
$url = $lsinclassables[$i][nomrewrit].'.php';
} else {
$url = 'script.php';
}
<a href="'.$url.'.php">Fiche d&eacute;taill&eacute;e</a>


Après si tu mets :

Code: Tout sélectionner
$rewrite = FALSE;


en début de script, pas de réécriture, et si tu mets :

Code: Tout sélectionner
$rewrite = TRUE;


les url seront réécrites.

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21238
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede gcvoiron » Dim Déc 17, 2006 9:07 pm

En fait le problème n'est pas au niveau de l'écriture des liens mais au niveau du htaccess.
Par exemple une page bien réelle, tel que partenaires.php ne marche pas...
Le htaccess n'essayerait-il pas de la rewriter?
gcvoiron
PR1
PR1
 
Messages: 122
Inscription: Jeu Juin 08, 2006 10:51 am

Messagede dcz » Dim Déc 17, 2006 10:37 pm

ahh mais alors pourquoi ne les réécrits tu pas avec l'extension html ?

Code: Tout sélectionner
RewriteRule ^([0-9a-zA-Z-]+)\.html $ /site.php?nomrewrit=$1 [QSA,L]


Et avec un
Code: Tout sélectionner
RewriteCond !-f


avant la rewriterule dans tous les cas.

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21238
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede gcvoiron » Lun Déc 18, 2006 6:23 am

J'ai pensé à cela...
Mais le problème est que mes pages sont réfèrencés dans Google, et je vais perdre tout mon référencement!
gcvoiron
PR1
PR1
 
Messages: 122
Inscription: Jeu Juin 08, 2006 10:51 am

Messagede dcz » Lun Déc 18, 2006 9:49 am

Et juste avec :

Code: Tout sélectionner
RewriteCond !-f
RewriteRule ^([0-9a-zA-Z-]+)\.php$ /site.php?nomrewrit=$1 [QSA,L]


?
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21238
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede gcvoiron » Lun Déc 18, 2006 12:07 pm

Ben avec ce htaccess :
Code: Tout sélectionner
ErrorDocument 404 http://www.benefweb.com/404.php
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^benefweb\.com$ [NC]
RewriteRule ^(.*) http://www.benefweb.com/$1 [QSA,L,R=301]
RewriteRule ^([0-9a-zA-Z-]+)\.php$ /site.php?nomrewrit=$1 [QSA,L]


# Forum
RewriteRule ^forum/.+-vc([0-9]+)\.html$ forum/index.php?c=$1 [QSA,L]
RewriteRule ^forum/.+-vf([0-9]+)-([0-9]+)\.html$ forum/viewforum.php?f=$1&start=$2 [QSA,L]
RewriteRule ^forum/.+-vf([0-9]+)\.html$ forum/viewforum.php?f=$1 [QSA,L]
RewriteRule ^forum/topic([0-9]+)-([0-9]+)\.html$ forum/viewtopic.php?t=$1&start=$2 [QSA,L]
RewriteRule ^forum/topic([0-9]+)\.html$ forum/viewtopic.php?t=$1 [QSA,L]
RewriteRule ^forum/post([0-9]+)\.html$ forum/viewtopic.php?p=$1 [QSA,L]
RewriteRule ^forum/membre([0-9]+)\.html$ forum/profile.php?mode=viewprofile&u=$1 [QSA,L]

#mx Google Sitemaps
RewriteRule ^forum/sitemaps.xml$ forum/sitemap.php [L]
RewriteRule ^forum/forum-sitemap-([0-9]+).xml$ forum/sitemap.php?fid=$1 [L]
RewriteRule ^forum/sitemap-forum.xml$ forum/sitemap.php?forum [L]

# mx Sitemaps
RewriteRule ^forum/sitemaps\.html$ forum/sitemaps.php [QSA,L]
RewriteRule ^forum/forum-m\ap\.html$ forum/sitemaps.php?fim [QSA,L]
RewriteRule ^forum/.+-fmp([0-9]+)-([0-9]+)\.html$ forum/sitemaps.php?fmp=$1&start=$2 [QSA,L]
RewriteRule ^forum/.+-fmp([0-9]+)\.html$ forum/sitemaps.php?fmp=$1 [QSA,L]
RewriteRule ^forum/.+-sc([0-9]+)\.html$ forum/sitemaps.php?c=$1 [QSA,L]


J'ai le message :

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, ***@benefweb.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


en allant sur mon site...
gcvoiron
PR1
PR1
 
Messages: 122
Inscription: Jeu Juin 08, 2006 10:51 am

Messagede dcz » Lun Déc 18, 2006 12:24 pm

Heu, il marchait pas juste ?
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21238
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede gcvoiron » Lun Déc 18, 2006 12:44 pm

Il ne marche pas avec les pages à rewriter et la page index.php...
gcvoiron
PR1
PR1
 
Messages: 122
Inscription: Jeu Juin 08, 2006 10:51 am

Messagede dcz » Lun Déc 18, 2006 12:51 pm

Tu as essayé de remplacer :

Code: Tout sélectionner
RewriteRule ^([0-9a-zA-Z-]+)\.php$ /site.php?nomrewrit=$1 [QSA,L]


Par :

Code: Tout sélectionner
RewriteCond !-f
RewriteRule ^([0-9a-zA-Z-]+)\.php$ /site.php?nomrewrit=$1 [QSA,L]


?
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21238
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede gcvoiron » Lun Déc 18, 2006 12:55 pm

Avec ça, aucune page ne marche.
gcvoiron
PR1
PR1
 
Messages: 122
Inscription: Jeu Juin 08, 2006 10:51 am

Messagede dcz » Lun Déc 18, 2006 1:17 pm

Et :
Code: Tout sélectionner
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([0-9a-zA-Z-]+)\.php$ /site.php?nomrewrit=$1 [QSA,L]


?
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21238
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede gcvoiron » Lun Déc 18, 2006 1:50 pm

Ca marche comme ça!

Merci :)
gcvoiron
PR1
PR1
 
Messages: 122
Inscription: Jeu Juin 08, 2006 10:51 am


Retourner vers mod rewrite Apache

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


 
cron