2014-06-17 1 views
0

J'ai essayé de comprendre la réécriture d'URL sur mon site de développement local toute la journée sans succès. Au départ, les fichiers .htaccess ont été ignorés. Maintenant, ils sont lus mais ne fonctionnent pas. Je ne sais pas comment résoudre un fichier .htaccess si. D'après ce que j'ai lu, il semble qu'Apache 2.4 se soit débarrassé de spécifier votre propre RewriteLog. La seule aide que je reçois est de /var/log/apache2/error.log qui est tout grec pour moi.Echouer misérablement avec .htaccess réécrire, ne sachant pas comment résoudre

rewrite Je tente est tout simplement: local.domain.com/users/index.php?id=1 -> local.domain.com/users/1/

Mon .htaccess ressemble à:

RewriteEngine On 
RewriteRule ^users/([0-9]+)/?$ users/index.php?id=$1 [NC,L] 

Lorsque vous demandez local.domain.com/users/index.php?id=1, l'URL reste inchangée. Le error.log pour apache donne les 3 lignes suivantes:

[Tue Jun 17 15:20:04.705939 2014] [rewrite:trace3] [pid 6569] mod_rewrite.c(468): [client 127.0.0.1:46208] 127.0.0.1 - - [local.domain.com/sid#b63f02c0][rid#b6b12058/initial] [perdir /var/www/vhosts/domain.com/] strip per-dir prefix: /var/www/vhosts/domain.com/users/index.php -> users/index.php 
[Tue Jun 17 15:20:04.705979 2014] [rewrite:trace3] [pid 6569] mod_rewrite.c(468): [client 127.0.0.1:46208] 127.0.0.1 - - [local.domain.com/sid#b63f02c0][rid#b6b12058/initial] [perdir /var/www/vhosts/domain.com/] applying pattern '^users/([0-9]+)$' to uri 'users/index.php' 
[Tue Jun 17 15:20:04.705990 2014] [rewrite:trace1] [pid 6569] mod_rewrite.c(468): [client 127.0.0.1:46208] 127.0.0.1 - - [local.domain.com/sid#b63f02c0][rid#b6b12058/initial] [perdir /var/www/vhosts/domain.com/] pass through /var/www/vhosts/domain.com/users/index.php 

L'emplacement du .htaccess /var/www/vhosts/domain.com/. Existe-t-il un moyen d'obtenir de meilleures/plus d'informations sur les journaux? Le fichier /var/log/apache2/error.log est-il vraiment le journal que je devrais utiliser pour cela? Le problème est-il vraiment lié à mon code .htaccess ou y at-il une sorte de configuration qui me manque ou quelque chose? Je sais qu'il y a des questions similaires mais jusqu'ici je n'en ai pas trouvé une qui soit à la fois compréhensible et une solution à mon problème.

Merci d'avance!

+0

Quelle est l'erreur et qu'est ce que l'emplacement de votre fichier .htaccess? – anubhava

Répondre

0

Vous réécrivez un URI entrant /users/1/-/users/index.php?id=1 (formulaire de référencement à la forme dynamique). Votre .htaccess semble correct pour cela (je suppose que c'est dans la racine).

Etes-vous sûr que votre serveur Apache est construit avec RewriteEngine activé? Avez-vous oublié un message d'erreur? Votre URI est /users/1/?

+0

Étrange. Je sais que j'ai essayé/users/1/et cela n'a pas fonctionné. Apparemment, j'ai changé quelque chose depuis. J'avais tapé à la fois la forme de la chaîne de requête et la forme plus jolie parce que je n'étais pas sûr exactement ce qui se passerait. Merci à vous deux si cela fonctionne maintenant. – bhoeksem

0

Vous regex cherche [0+9]+ ce qui signifie qu'il cherche des numéros après /users. Dans votre URL d'entrée (en supposant que c'est votre URL d'entrée), /var/www/vhosts/domain.com/users/index.php il n'y a pas de chiffres après `'/ users'

Mettez un nombre après les utilisateurs comme /users/55555/ et voir ce qui se passe.