2009-08-28 5 views
0

J'essaie de rediriger toutes les demandes provenant de example.com vers un sous-répertoire. Le code ci-dessous accomplit cela mais je ne peux pas rendre le sous-répertoire invisible. (Le sous-répertoire contient une instance Drupal avec son propre/htaccess Serait-ce le problème.?)Comment rediriger la requête provenant d'un domaine vers un sous-répertoire de manière invisible?

RewriteCond %{HTTP_HOST} ^example.com$ [NC] 

    RewriteRule ^(.*)$ http://example.com/drupal/d6/$1 [L] 

Cela finit par ressembler à ceci dans le navigateur:

http://example.com/drupal/d6/install.php?profile=default

EDIT: Je essayé de supprimer http://example.com de la RewriteRule, comme recommandé, mais la redirection n'est toujours pas invisible. :-(

Répondre

0

Vous devez réécrire à l'emplacement, pas à une URL complète http: // Si vous le faites à une URL, une redirection est émise même sans l'indicateur [R] sur le RewriteRul. /drupal/d6/$1 et il devrait rester une ré-écriture (plutôt que "mise à niveau" à un redirect)

de http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

Prefix Substitution with http://thishost[:thisport]/ (which makes the new URL a URI) to force a external redirection. 
+0

Il émet uniquement une redirection si vous faites [R] ou si vous avez un ht_tp: // start. –

+0

Quand je fais cela, je reçois une "erreur de serveur". Et dans le journal des erreurs, je vois ceci: [Fri Aug 28 28:04:51 2009] [erreur] [client 127.0.0.1] Demande dépassé la limite de 10 redirections internes en raison d'une erreur de configuration probable. Utilisez 'LimitInternalRecursion' pour augmenter la limite si nécessaire. Utilisez 'LogLevel debug' pour obtenir un backtrace. – picardo

+0

Ok, j'ai corrigé l'erreur du serveur, qui a été causée par une faute de frappe, mais cela ne rend pas l'URL invisible. – picardo

0

une URL absolue provoque une redirection Utilisez juste un chemin:..

RewriteCond %{HTTP_HOST} ^example.com$ [NC] 
RewriteCond $0 !^drupal/d6/ 
RewriteRule .* drupal/d6/$0 [L] 
+0

J'ai essayé ceci mais l'URL ressemble toujours à http://example.com/drupal/d6/install.php?profile=default. Savez-vous comment je peux rendre le drupal/d6 invisible? – picardo

+0

@picardo: Donc vous voulez aussi une règle qui supprime '/ drupal/d6' de l'URL si demandé? – Gumbo

+0

@gumbo Oui, précisément. – picardo

Questions connexes