url_rewriting - PHP - Programmation
Marsh Posté le 20-09-2005 à 17:45:53
A priori le htaccess regarde ce qu'il y a derrière le dernier /, donc spa super.
C'est pas suffisant, - et , ?
Marsh Posté le 20-09-2005 à 18:07:31
hein ?
en gros tout marche mais quand j'utilise "/" pour séparer mes variables, à marche pu !
Marsh Posté le 20-09-2005 à 18:09:15
pouchat a écrit : hein ? |
le monsieur, il te dit que quand tu utilises le / les régles de transormations dans le .htaccess s'appliquent que sur la partie de l'adresse derriére le dernier "/".
Marsh Posté le 20-09-2005 à 18:47:34
d'accord,
alors qu'est-ce qui fait que chez moi en local çà marche ?
et chez l'hébergeur çà marche pas ? (une modif dans le php.ini ? httpd.conf ???)
finalement comment retrouver ma variable séparée avec un "/" ?
Marsh Posté le 20-09-2005 à 18:57:04
Chez toi, c'est où que t'as mis les régles d'url_rewriting?
Marsh Posté le 20-09-2005 à 19:08:03
ReplyMarsh Posté le 20-09-2005 à 19:21:22
j'ai essayé avec \/ toujours le même problème..
chez moi :
.htaccess
Code :
|
si j'affiche $_GET['id'] dans un fichier "index.php" il me retrouve bien la variables passé dans l'url. les règles d'url-rewriting sont dans le repertoire "test" avec le "index.php"
si je fais la même chose chez ovh, en modifiant le htaccess (car chez eux faut partir de la racine) :
.htaccess
Code :
|
$_GET['id'] n'existe pas.
Le problème est simple, la solution l'est moins apparement.
Marsh Posté le 20-09-2005 à 19:58:56
Ben je viens de tester sur mon serveur OVH avec un truc comme ça, et pas de problèmes, il reconnaît parfaitement bien $_GET['id']. Donc apparemment non, il ne considère pas que la partie de l'url située derrière le dernier /. M'enfin c'est quand même chercher les problèmes, genre dans le cas où tu as aussi un répertoire du même nom ("test" dans ton cas) avec son .htaccess...
Bref, pour ton truc, je sais pas, d'autant que le masque a l'air de passer si t'obtiens pas de 404. Si c'est juste $_GET['id'], je vois pas du tout. T'as bien testé la règle seule ?
Marsh Posté le 20-09-2005 à 20:20:00
oui j'ai testé la règle seule et toujours pareil.
Il y a une chose d'étonnante, si je vais sur http://www.monsiteovh.com/test/index/.html sans préciser de variable il ne m'affiche aucune erreur. Pourtant dans la réécriture le "+" devrait me rediriger vers un 404. Ca prouve encore qu'il pige pas mon $_GET['id'].
C'est dingue que sur ton compte çà marche ?
tu as mis exactement la même règle et il trouve le $_GET ?
hum, je suis pourtant pas trop à la masse aujourd'hui...
Marsh Posté le 20-09-2005 à 21:07:33
Déjà c'est \.html, pas .html, même si ça changera pas grand chose au problème a priori.
Si tu fais print_r($_GET) c'est vide donc ?
Sinon j'ai pas compris le rapport entre tes deux phrases là :
Citation : Pourtant dans la réécriture le "+" devrait me rediriger vers un 404. Ca prouve encore qu'il pige pas mon $_GET['id']. |
Je vois pas trop le rapport entre le fait que la règle matche et l'affichage de $_GET['id']. Si la règle foire, ton url est pas transformée et tu prends un 404 (à moins que le html de chemin spécifié existe, bien sûr).
Marsh Posté le 20-09-2005 à 22:11:09
oui c'est vide :
Code :
|
par contre si je rechange tout en
Code :
|
et que je vais http://.../test/index-8.html
Code :
|
Il merde toujours avec "/". Je trouve pas de solution.
Marsh Posté le 20-09-2005 à 17:27:24
Bonjour,
Utilisant l'url_rewriting depuis quelques temps, j'ai décidé de réécrire mes url en "path_info", c'est à dire avec le caractère "/" pour séparer mes variables.
Sur mon serveur en local cela marche parfaitement (je retrouve mes variables $_GET['ma_variable']) mais sur des hébergeurs (ex: OVH) çà ne marche pas.
ex sur ovh :
.htaccess :
si je vais aux l'adresses :
http://.../test/test,OK.html
http://.../test/test-OK.html
ma variable $_GET['var'] est affichée
mais si je fais :
http://.../test/test/OK.html
ma variable $_GET['var'] n'existe pas
si quelqu'un connait la solution.
merci.