J'ai du mal a écrire cette ligne de UrlRewriting

Deus Ex Machina

Nouveau WRInaute
Bonjour à tous!
J'aurais besoin de votre aide pour comprendre au maximum d'url rewriting et je vous expose donc mon problème :p
Voici donc ce que j'aimerai faire :

Transformer une url de ce type :
/news/index.php?page=1&actu=#actu13
En ceci :
/news/mmorpg-news-1.html#actu13

J'ai déjà écris ceci mais cela ne fonctionne pas au niveau de l'ancre. ^^'
RewriteRule ^mmorpg-news-([0-9]+).html#(.+)$ /news/index.php?page=$1&actu=$2 [L]

Merci de m'aider sur ce coup là :) Bye!
 

aladdin

WRInaute passionné
@seebz : il peut pas le réécrire mais il peut laisser le navigateur le faire à sa place ;)


Code:
RewriteRule ^/news/mmorpg-news-([0-9]+).html(.+)$ /news/index.php?page=$1&actu=  [L]
 

Deus Ex Machina

Nouveau WRInaute
Super ça fonctionne =)
Maintenant que faire pour ce qui concerne la redirection 301 si on tape l'ancienne adresse pour qu'on atterrisse directement sur les nouvelles adresses. J'ai ajouté [L, R=301] à la fin de la ligne mais ca fait une redirection 301 vers l'ancienne adresse. Que faire? merci =)
 

aladdin

WRInaute passionné
pas compris !
si c'est une redirection 301 que tu veux tu fais

Code:
RewriteRule ^/news/mmorpg-news-([0-9]+).html(.+)$ /news/index.php?page=$1&actu=  [R=301,L]
 

Deus Ex Machina

Nouveau WRInaute
Ha la voila la réponse x) J'inversais la balise L et le R=301 x)

EDIT : Bah non en fait, ca me redirige vers l'ancienne adresse o_o

Voici mon code .htaccess vous y verrez peut être plus clair :
Code:
SetEnv REGISTER_GLOBALS 0
SetEnv ZEND_OPTIMIZER 1
SetEnv MAGIC_QUOTES 0
SetEnv PHP_VER 5
#GZIP
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0678 no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
ErrorDocument 400 http://www.collapse-of-time.net/forum/error.php?mode=400
ErrorDocument 401 http://www.collapse-of-time.net/forum/error.php?mode=401
ErrorDocument 403 http://www.collapse-of-time.net/forum/error.php?mode=403
ErrorDocument 404 http://www.collapse-of-time.net/forum/error.php?mode=404
ErrorDocument 500 http://www.collapse-of-time.net/forum/error.php?mode=500

Options +FollowSymlinks
RewriteEngine On
#Force le www je dirais
RewriteCond %{HTTP_HOST} ^collapse-of-time\.net$ [NC]
RewriteRule ^(.*) http://www.collapse-of-time.net/$1 [QSA,L,R=301]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]

#Ré-écriture de toutes les urls en .html
RewriteRule ^mmorpg-news.html$ /news/ [R=301,L]
RewriteRule ^mmorpg-news.html$ /news/index.php [R=301,L]

#OK CA MARCHE LA
RewriteRule ^mmorpg-news-([0-9]+).html$ /news/index.php?page=$1 [R=301,L]

#OK CA MARCHE LA
RewriteRule ^/news/mmorpg-news-([0-9]+).html(.+)$ /news/index.php?page=$1&actu= [R=301,L]
 

Deus Ex Machina

Nouveau WRInaute
En gros :
Si l'utilisateur tape ceci : /news/index.php?page=1&actu=#actu13
qu'il soit redirigé automatiquement vers : /news/mmorpg-news-1.html#actu13
afin d'éviter le double content ^^

Désolé de ne pas avoir été très clair avant ^^'
 

aladdin

WRInaute passionné
voici une proposition, pas testé donc pas sure que ca marche, ca risque de boucler ...

Code:
#Rewrite
RewriteRule ^/news/mmorpg-news-([0-9]+).html(.+)$ /news/index.php?page=$1&actu= [QSA,NC,L]

#Redirect
RewriteRule /news/index.php\?page=([0-9]+)&actu=  /news/mmorpg-news-$1.html  [R=301,L]



si ce code ne marche pas utilise juste ca
Code:
RewriteRule ^/news/mmorpg-news-([0-9]+).html(.+)$ /news/index.php?page=$1&actu= [QSA,NC,L]
avec des url canonical pour éviter le duplicate content
 

Deus Ex Machina

Nouveau WRInaute
Je ne comprend plus rien là o_o voila que j'essais de mettre le même code qui marchait auparavent pour faire des tests et voila que ca me renvoit à chaque fois vers une erreur 404. Meme si j'utilise le code du message qui précède celui-ci, ou bien celui que j'avais déclaré qui fonctionnait un peu plus haut.

voici mon code dans le htaccess, j'ai du faire une boulette mais je n'ai pas touché à grand chose lol.
Code:
SetEnv REGISTER_GLOBALS 0
SetEnv ZEND_OPTIMIZER 1
SetEnv MAGIC_QUOTES 0
SetEnv PHP_VER 5
#GZIP
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0678 no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
ErrorDocument 400 http://www.collapse-of-time.net/forum/error.php?mode=400
ErrorDocument 401 http://www.collapse-of-time.net/forum/error.php?mode=401
ErrorDocument 403 http://www.collapse-of-time.net/forum/error.php?mode=403
ErrorDocument 404 http://www.collapse-of-time.net/forum/error.php?mode=404
ErrorDocument 500 http://www.collapse-of-time.net/forum/error.php?mode=500

Options +FollowSymlinks
RewriteEngine On
#Force le www je dirais
RewriteCond %{HTTP_HOST} ^collapse-of-time\.net$ [NC]
RewriteRule ^(.*) http://www.collapse-of-time.net/$1 [QSA,L,R=301]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
#Rewrite
RewriteRule ^/news/mmorpg-news-([0-9]+).html(.+)$ /news/index.php?page=$1&actu= [QSA,NC,L]

Merci pour votre patience.
 

Deus Ex Machina

Nouveau WRInaute
Bon en fait j'ai reussi =)

Maintenant, une ultime question.

Toutes mes pages sont en php et certaines changent en fonction de une ou deux variables, ce qui n'est apparement pas gênant pour google. Cela dit je trouve les url en .html plus propres, alors je voulais savoir, cela vaut-il le coup de changer les extensions de chacune de mes pages avec du url rewriting? C'est possible ? Déconseillé? Inutile? Merci pour vos réponses :p)
 

Discussions similaires

Haut