Question

J'utilise mod_rewrite pour créer des URL de référencement. Fondamentalement, la chose fonctionne de la manière suivante: toutes les demandes sont prises par .htaccess et redirigés vers un script php (disons transform.php). transform.php SEO URL et parse transforme en une URL normale, comprend alors index.php, attrape alors la sortie de l'application (de index.php) et utilise RegEx pour convertir toutes les URL normales SEO URL. Ainsi, l'étape essentielle est de faire toute demande de passer par transform.php. Mon .htaccess est assez long mais je réussi à le limiter aux lignes suivantes.

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on

    RewriteRule ^index\.php?(.*)$ ./transform.php?p=$1&%{QUERY_STRING} [L]

</IfModule>

Le problème se produit avec l'URL initiale (racine): http://mysite.com/ . Lorsque je tape http://mysite.com/ et le site est situé sur mon ordi local, tout fonctionne bien. http://mysite.com/ est pris par .htaccess et envoyé à transform.php pour un traitement ultérieur. Cependant sur un autre serveur cette ligne ne fonctionne pas (disons http://mysite-other-server.com / ). Cette ligne .htaccess ne fonctionne tout simplement pas attraper la demande. Tout fonctionne bien pour http://mysite-other-server.com/index.php bien.

De plus, j'ai plusieurs sites sur ce second serveur et certains d'entre eux travaillent alors que certains d'entre eux ne le font pas. Il est comme pour certains d'entre eux l'URL est d'abord résolu à http: // monsite-autre serveur. com / index.php puis traitées par .htaccess tandis que pour d'autres l'URL n'est pas résolu et traite avec .htaccess http://mysite-other-server.com/

Je suis très confus et sans googler essayé la chance. Toute aide est très appréciée.

Était-ce utile?

La solution

Je suppose que Apache est configuré pour ne pas accepter les fichiers .htaccess.

Vous devez l'activer dans la configuration de httpd avec le réglage AllowOverride.

http://httpd.apache.org/docs/2.0 /mod/core.html#allowoverride

Une autre possibilité est que le serveur de production n'a pas chargé mod_rewrite, vérifier les directives LoadModule pour cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top