2010-11-02 6 views
0

J'ai un problème avec une réécriture d'url htaccess, qui fonctionne très bien sur localhost mais qui ne fonctionne pas sur mon hébergement (anhosting).Utiliser .htaccess mod_rewrite pour insérer un nom de script au début du chemin

Je dois rediriger toute la requête vers ma page index.php. Voici un exemple: je voudrais rediriger

http://mydomain.com/this/is/a/page 

à

http://mydomain.com/index.php/this/is/a/page 

Ceci est mon .htaccess:

sur l'hébergement
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

i redirigés toujours dans le fichier index.php , mais les résultats des paramètres $ 1 sont toujours vides, donc mon framework personnalisé ne peut pas gérer correctement la requête.

Quel pourrait être le problème?

Désolé pour mon mauvais anglais, j'espère avoir été assez clair ...

Répondre

1

Il semble que le serveur distant a AcceptPathInfo désactivé. Ce paramètre est responsable de l'effet que vous utilisez.

Essayez une demande manuelle à

http://mydomain.com/index.php/this/is/a/page 

si this/is/a/page disparaît, alors cette option est définitivement désactivé et vous ne pouvez pas utiliser cette méthode sur le serveur distant (sauf si vous pouvez modifier sa configuration).

Dans ce cas, je changerais la règle

RewriteRule ^(.*)$ index.php?path=$1 [L,QSA] 

et changer le cadre pour écouter $_GET["path"] au lieu de $_SERVER["PATH_INFO"].

+0

http://mydomain.com/index.php/this/is/a/page <- cela fonctionne ... Je pense vraiment que le problème est lié à someway mod_rewrite ... –

+0

Luciano pouvez-vous essayer '% 1' au lieu de' $ 1'? –

+0

Ne fonctionne pas trop ... –

0

Avez-vous activé le mod-rewrite dans les fichiers de configuration d'Apache?

sudo nano /etc/apache2/sites-available/default 
sudo nano /etc/apache2/sites-enabled/000-default 

Voici un site qui vous montre plusieurs façons. J'ai fait mes mod-réécrit en modifiant les fichiers ci-dessus mais je pense qu'il y a d'autres façons.

http://drupal.org/node/134439

+0

Malheureusement, je n'ai pas l'accès complet sur le serveur (je suis sur un hébergement partagé et je peux simplement utiliser Cpanel ...) J'ai parlé avec l'hôte et ils m'ont assuré que mod_rewrite est activé ... ils ont également installé un "VRAI "Démo simple sur mon espace web pour me montrer que c'est vraiment activé ... quand j'ai posé des questions sur ce problème, ils m'ont dit que ce genre de demande ne sont pas de leur compétence ... –