web-dev-qa-db-fra.com

Problème lors de la réécriture du sous-domaine vers le répertoire au travail

Je veux rediriger demo.example.com vers example.com/my-demo. C'est ma règle de réécriture, mais je ne parviens pas à la faire fonctionner sur mon serveur de production:

  RewriteCond %{HTTP_Host} ^demo\.example\.com
  RewriteRule ^(.*)$ /my-demo/$1 [R=301,L]
2
AlxVallejo

Dans l'état actuel des choses, vous redirigez vers le même hôte. c'est à dire. demo.example.com/file est redirigé vers demo.example.com/my-demo/file et non pas example.com/my-demo/file, ce qui entraînera une boucle de redirection. Vous devez spécifier une URL absolue dans la substitution RewriteRule:

RewriteEngine On
RewriteCond %{HTTP_Host} =demo.example.com
RewriteRule ^(.*)$ http://example.com/my-demo/$1 [R=301,L]
2
MrWhite

mettez ceci dans le fichier .htaccess dans votre répertoire demo.example.com:

 RewriteEngine On 
 RewriteCond% {HTTP_Host} ^ demo\.example\.com [NC] 
 RewriteRule (. *) Http://example.com/demo/$1 [ L, R = 301] 

i.e: demo.example.com est dans le dossier root-folder/demo
place ce fichier .htaccess sur un dossier démo, pas sur dossier racine.

j'espère que ce travail pour vous.

1
mitchell

Avez-vous un ServerAlias ​​demo.example.com pour le VirtualHost qui a ceci RewriteRule? Si vous ne le faites pas, c'est la raison pour laquelle cela ne fonctionne pas.

0
Tero Kilkanen

S'il ne s'agit pas d'un ServerAlias ​​mais d'un sous-domaine, n'oubliez pas de placer votre fichier .htaccess dans le sous-domaine, pas dans le répertoire du domaine principal. Ajoutez également "RewriteEngine On" dans .htaccess si vous ne l'avez pas encore fait.

0
PHPstart