2011-08-11 3 views
0

Je voudrais avoir une route http://www.mycom/api/* au fichier mycom/api/index.php.htaccess redirect question sur RewriteRule

RewriteEngine On 
#1 
RewriteRule ^api/([a-zA-Z]+) /mycom/api/index.php?mode=$1 [QSA,L] 

Cause Erreur interne du serveur

#2 
RewriteRule ^/api/([a-zA-Z]+) /mycom/api/index.php?mode=$1 [QSA,L] 
# 3 
RewriteRule ^mycom/api/([a-zA-Z]+) /mycom/api/index.php?mode=$1 [QSA,L] 

2 et 3 ne fonctionnent pas non plus

Répondre

2

Quelle est la véritable URL de index.php? http://www.mycom/api/index.php ou http://www.mycom/mycom/api/index.php?

dans le premier cas, essayez ceci:

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

si elle est la deuxième

RewriteRule ^api(/.*)? /mycom/api/index.php?mode=$1 [QSA,L] 

BTW, avez-vous besoin à la fois la chaîne de requête d'origine et le paramètre de mode?

+0

C'est le deuxième. RewriteRule^api (/.*)? /mycom/api/index.php?mode=$1 [QSA, L] a provoqué une erreur interne du serveur. – lilzz

+0

alors le problème sera ailleurs. cela fonctionne pour moi pour une URL comme '/ api/asdf? foo = bar' elle appelle' index.php' avec à la fois _mode_ et _foo_. –