Comment faire un rewriting avec des / ?

WRInaute occasionnel
Bonjour à tous,

Je souhaiterai que lorsque l'on saisit monsite.com/news/idnews.html, on tombe sur la page monsite.com/index.php?page=news&id=$idnews, comment faire ?


J'ai réussi à le faire avec un tiret - comme séparateur (monsite.com/news-idnews.html fonctionne), mais pas avec un slash /..., avec la ligne suivante :


Code:
RewriteRule ^news-([0-9]+)\.html$ index.php?page=news&id=$1 [L]
 
WRInaute discret
Salut,

Il faut mettre un antislash devant le slash afin de l'"échapper".

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

Tiens moi au courant.

A+

Doug
 
WRInaute occasionnel
J'avais déjà essayé, et ca marche "partiellement", car les images de la page n'apparaissent plus, et les styles css (fichier externe) ne s'affichent plus... il ne reste que le texte "BRUT" !
 
Nouveau WRInaute
C'est normal, tu viens de créer un répertoire virtuel, il faut donc modifier le chemin de tes images et css en conséquence en rajoutant "../" par example
 
WRInaute discret
Oui en effet, tes images, css et fichiers javascript doivent être linkés sur le modèle de ton URL rewriting (à l'inverse de tes include php qui eux respectent la vraie arbo).

A+

Doug
 
WRInaute occasionnel
Merci à tous ;)

En effet, en ajoutant "../" pour les images et fichiers externes, tout est rentré dans l'odre... sauf une chose : lorsque l'on tombe sur la page d'accueil du site http://www.monsite.com/ c le même problème qui se pose, car là, on ne spécifie aucune page, et donc, on ne fait pas appel à l'url rewriting...

Please help !! ;)
 
WRInaute discret
Fais ce que j'ai dit, mettre les urls en partant de la racine

/style.css
/images/blabla
etc...

et ca marchera très bien.
 
WRInaute occasionnel
Ok, je viens de tester : si je met "/" au lieu de "../", je reviens au départ, ca ne marche plus du tout... :(
 
WRInaute discret
Salut,

La balise <base href=""> sert à simuler la base de ta page, c'est-à-dire l'emplacement où elle se trouve.

Exemple :

Physiquement ta page se trouve à la racine de ton site, mais tu mets entre les balises <head> et </head> la balise suivante :

<base href="http://www.example.com/sous-repertoire/">

et tous tes liens vers des pages, images, feuilles de style et fichiers javascript auront comme base relative cette adresse.

Re-exemple :

dans cette page le bon lien vers une image qui se trouve physiquement ici : -http://www.example.com/sous-repertoire/image/img1.jpg

sera :

<img src="image/img1.jpg">

et non pas :

<img src="sous-repertoire/images/img1.jpg">

Voilà, je ne sais pas si c'est clair, mais c'est en gros ça le principe :-D

A+

Doug
 
WRInaute occasionnel
Et bien là, je dis bravo, car cela fonctionne parfaitement, avec ou sans rewriting !! :D :mrgreen:

Je vais continuer de tester, mais là, ca se semble parfait ;)
 
WRInaute occasionnel
J'aurai encore une question, désolé... :D

Dans les expressions régulières, je sais que, par exemple, [[:alnum:]], c pour reconnaitre lettres et chiffres.

Par contre, pour reconnaitre quelque chose de la forme "titre-de-la-page-1", quelle expression faut-il adopter ?
 
WRInaute occasionnel
C bon, g trouvé, il suffisait d'ajouter un + après [0-9a-z\-]

Merci encore à tous, j'espère ne pas vous avoir trop déranger ;)
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut