2008-12-14 12 views
8

J'utilise codeigniter comme installation principale sur le domaine principal. J'ai créé un sous-domaine et un dossier appelé live par ex. live.domain.com cartes à public/live. Cependant en public j'utilise codeigniter..htaccess Règles de réécriture pour le sous-domaine

J'ai maintenant l'url CodeIgniter dynamique:

http://domain.com/api/

que je veux carte à mon sous-domaine:

https://live.domain.com

allant à:

https://live.domain.com/api/functioname

utiliserait les script:

http://domain.com/api/apifunctioname

et peut-être:

http://domain.com/api/apifunctioname/parameter1/parameter

Tout est sur le même serveur donc pas réoriente sont nécessaires.

Quelqu'un a des idées sur lesquelles les règles de réécriture à utiliser?

Options +FollowSymLinks 

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^live\.domain\.com [NC] 
RewriteRule (.+)$ "http://domain.com/api/$1" [L] 

Les travaux ci-dessus grands comme une ré-écriture, mais redirige vers http://domain.com/api/functionname au lieu que je veux qu'il voie; de sorte que lors du passage à:

https://live.domain.com/api/functioname

Il reste à cette URL, mais utilise le script de

http://domain.com/api/functionname

Merci beaucoup,

Ice

Répondre

10

Que diriez-vous quelque chose comme ce qui suit :

 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^live\.domain\.com$ [NC] 
RewriteRule (.+)$ "https://domain.com/api/$1" [L,P] 
+0

Merci mais j'ai essayé, mais je viens de recevoir un 404 Not Found - très particulière –

+0

Je dois mentionner probablement qu'il n'a pas été testé. Avez-vous essayé d'augmenter le log_velrite loglevel, et analysé ce qui se passe exactement? –

+0

Vous devriez avoir "^ live \ .domain \ .com" comme RewriteCond, et il devrait y avoir une seconde vérification de RewriteCond pour/api/URLs. – Tomalak

4

Il suffit d'ajouter index.php, voir ci-dessous

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^live\.domain\.com$ [NC] 
RewriteRule (.+)$ "https://domain.com/index.php/api/$1" [L,P] 
Questions connexes