2009-08-12 8 views
0

L'application que je développe utilise une certaine structure de répertoire de fichiers. Grâce à l'utilisation des fichiers mod_rewrite et .htaccess, je parviens à avoir des URL conviviales pour nos utilisateurs. Cela fonctionne très bien sur mon serveur local, mais une fois sur le serveur de production, il échoue: apparemment, le serveur lance une erreur 404 avant que le .htaccess ait une chance de se lancer.échec mod_rewrite: .htaccess ou problème de configuration du serveur?

Voici le .htaccess que je travaille sur (référencé (1) ci-dessous):

IndexIgnore * 
#Options +FollowSymLinks 
RewriteEngine on 

RewriteOptions inherit 

RewriteCond %{REQUEST_FILENAME} !-f [NC] 
RewriteRule ^(.*)$ /~extranet/extranet/$1 [NC,L,QSA] 

sur le serveur, il retourne 404:

le serveur ne peut pas trouver la page demandé:

<IP-ADDRESS>/~extranet/extranet/dev/foo/ 

(port 80)

En fait, il semble tout de redirection échoue, même si phpinfo() répertorie mod_rewrite parmi les modules chargés.

Le serveur est flambant neuf. (Au cas où cela serait utile, la page 404 répertorie Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8f-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.8 Serveur)

Où devrais-je chercher l'erreur/mauvaise configuration?

MISE À JOUR: plus d'informations

est ici le fichier/structure du dossier et chaque .htaccess utilisé:

<IP-ADDRESS>/~extranet/.htaccess (1) 
<IP-ADDRESS>/~extranet/extranet/ 
           L .htaccess (2) 
           L/dev/ 
            L .htaccess (3) 
            L index.php 
           L/stable/ 
            L .htaccess (3) 
            L index.php 

(1) redirige toutes les demandes de dossier "extranet" (2) redirige toutes les demandes ne contenant pas "/ dev /" dans le dossier "stable" (3) réécritures/extranet/foo/bar/index.php app = foo & do = bar

Répondre

1

Il y a un tilde ici: <IP-ADDRESS>/~extranet/extranet/dev/foo/

Vos expressions régulières telles que spécifiées ne correspondront pas au tilde.

Peut-être que vous devez spécifier votre RewriteBase correctement pour votre serveur web distant?

+0

ok je vais essayer d'utiliser la partie avec le tilde. Pouvez-vous élaborer sur la façon dont je devrais modifier le RewriteBase? Je ne comprends pas vraiment cette directive. Je vous remercie!! – pixeline

+0

Eh bien, les principales questions sont, a) où est votre. Htaccess qui fait la redirection, par rapport à la racine Web, et b) Où est votre fichier index.php cible? – Amber

+0

Salut Dav, j'ai mis à jour la question avec les informations requises. Merci de tenir le coup! – pixeline