8791 sujets

Développement web côté serveur, CMS

Pages :
bonsoir

j'arrive pas à faire fonctionner la réécriture d'url sur mon site

fichier .htaccess pour serveur unix 1&1 :

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

url du style : www.mon_site_web.com/
ou www.mon_site_web.com/index.php
ou www.mon_site_web.com/index.php?page=ma_page
ou www.mon_site_web.com/index.php?page=ma_page/1
ou www.mon_site_web.com/index.php?page=ma_page/ma_page

à réécrire en www.mon_site_web.com/page/ma_page

merci de votre aide
je galère.. Smiley murf
Modifié par stefou21 (04 Apr 2010 - 14:21)
Salut,

stefou21 a écrit :
faut il utiliser une réécriture récursive dans mon cas ?
Non. (Re)voir cette page de sommaire pour 4 articles sur le .htaccess dont la réécriture d’URL récursive.

Sinon ce n'est pas :
www.mon_site_web.com/index.php
ou www.mon_site_web.com/index.php?page=ma_page
ou www.mon_site_web.com/index.php?page=ma_page/1
ou www.mon_site_web.com/index.php?page=ma_page/ma_page

à réécrire en www.mon_site_web.com/page/ma_page

mais l'inverse. Smiley cligne

En clair une url www.mon_site_web.com/page/ma_page pourrait renvoyer par exemple vers index.php?repert=page&article=ma_page.

Par exemple :
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^([a-z]+)/([a-z]+)$  index.php?repert=$1&article=$2	[L]
effectivement merci ! Smiley sweatdrop
mais le truc c'est que j'affiche les pages et sous pages avec un switch et des include

est ce compatible?
stefou21 a écrit :
mais le truc c'est que j'affiche les pages et sous pages avec un switch et des include
est ce compatible?
Ben je ne suis pas sûr de comprendre ta question mais :
* avec mon exemple les variables $_GET['repert'] et $_GET['article'] sont récupérables.
* il suffit d'essayer. Smiley cligne
stefou21 a écrit :
Si on omet de signaler qu'il faut changer tous les liens dans les pages du site..
Ben tu peux commencer par saisir les urls à la main et effectivement quand ça fonctionne il faut également changer les liens du site... en même temps c'est le but non ? Smiley murf
OK
dans mon cas pour remplir toutes les contraintes de mes url

c'est tout simplement

RewriteRule ^([^-&]*)$ index.php?page=$1 [L]

une fonction s'occupe quant à elle de fragmenter l'url pour afficher les différents arborescences des répertoires
en fait, j'arrive au résultat escompté avec

RewriteRule ^([a-z]+)([a-z-0-9]*)\.html$ index.php?page=$1$2 [L]

pour l'instant ça fonctionne en localhost

d'ailleurs je conseille de travailler en localhost avant toute chose
Tout fonctionne bien en Localhost sous Apache

j'essaye sur le serveur et là

internal serveur erreur

plus rien sur mon domaine

si quelqu'un à une idée
Smiley lol
peut être à voir avec

define("ROOT_PATH",dirname(__FILE__).DIRECTORY_SEPARATOR);

? Smiley langue
Modifié par stefou21 (27 Mar 2010 - 21:46)
tu n'as pas accés a ton virtualhost j'imagine? a moins que tu ne sois en dédié.

si oui verifie que tu es bien en

AllowOverride All
mon site marche nickel en localhost avec xampp 1.7.1 pour window et php 5.2.9
et le fichier .htaccess dans le repertoire de mon site est:

Options +FollowSymlinks
RewriteEngine on
#RewriteBase /
RewriteRule ^([a-z]+)([a-z-0-9]*)\.html$ index.php?page=$1$2 [L]


lorsque je transbahute mon site sur le serveur 1&1 =>> erreur 500

le fichier .htaccess est dans le répertoire de mon site au même niveau que les repertoires PHP, TPL et Classe:

AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php

Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^([a-z]+)([a-z-0-9]*)\.html$ index.php?page=$1$2 [L]


auparavant j'avais essayé en changeant les url directement et ça marchait
CPascal a écrit :
tu n'as pas accés a ton virtualhost j'imagine? a moins que tu ne sois en dédié.

si oui verifie que tu es bien en

AllowOverride All


comment vérifier si j'ai accès à mon virtualhost?

sinon ou vérifier le AllowOverride All ?
dans le fichier httpd.conf ou apache2.conf. ou un fichier inclus par ces fichiers
( dans site-availables sous debian, sinon un fichier avec vhosts dedans en général, ca depend de l'installation y a pas une reponse)

mais a priori si tu sais pas c'est que ce doit être l'hébergeur qui gère.

moi j'ai 2 conseils:

1/ demande a ton hébergeur, il va bien finir par te répondre.

2/ sinon essai avec des .htaccess super simple

(juste une ligne super basique genre
RewriteEngine on ).

et si ça marche pas c'est que tu n'es pas autoriser soit a avoir un htacess
soit le module rewrite n'est pas activé.

si ça marche essai de rajouter ligne par ligne jusqu'a savoir quelle ligne merde.
Modifié par CPascal (28 Mar 2010 - 19:50)
[quote=CPascal]dans le fichier httpd.conf ou apache2.conf. ou un fichier inclus par ces fichiers
( dans site-availables sous debian, sinon un fichier avec vhosts dedans en général, ca depend de l'installation y a pas une reponse)

mais a priori si tu sais pas c'est que ce doit être l'hébergeur qui gère.

moi j'ai 2 conseils:

2/ sinon essai avec des .htaccess super simple

(juste une ligne super basique genre
RewriteEngine on ).

j'ai fait ça et j'ai une erreur fatal error SQL
Pages :