2017-10-16 6 views
1

D'abord,.htaccess redirigent vers un autre dossier, mais garder le domaine d'origine

mon domaine 'example.com' est lié au dossier '/home/defaultfolder/'.

Je veux rediriger

example.com , www.example.com 

à

/home/somefolder/example/, pas /home/defaultfolder/ dossier

en utilisant .htaccess. (Les deux sont à l'intérieur du répertoire DocumentRoot)

aussi, comme des sous-domaines

a.example.com 

à

/somefolder/example/a/ 

mais conserve le domaine 'example.com'.

J'ai essayé quelques exemples sur le web, mais rien n'aurait pu le faire. Comment puis-je écrire le .htaccess pour le faire?

Je vous remercie.

Bien sûr, je ne peux pas modifier les paramètres du serveur (comme les hôtes virtuels alias ..) et c'est pourquoi j'essaye de le faire en modifiant le fichier.


J'ai essayé

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC] 
RewriteRule /somefolder/example/$1 [R=301,NC,L] 

RewriteCond %{HTTP_HOST} ^(www.)?example.com$ 
RewriteRule !^/somefolder/example/ /somefolder/example/1%{REQUEST_URI} [L] 


RewriteCond %{HTTP_HOST} ^/?(?:www\.)?example.com 
RewriteRule ^(.*)$ /somefolder/example/$1 [R=permanent,L] 

et quelques autres ..

+0

Montrez-nous vos tentatives afin que nous puissions vous donner des suggestions. – kmoser

+0

@anubhava alors si le chemin est dans le DocumentRoot? Comment puis-je le gérer? – klados

+0

Notez cependant que si '/ home/defaultfolder /' est votre racine de site alors '/ home/somefolder /' est considéré en dehors de 'DocumentRoot'. Seul '/ home/defaultfolder/somefolder /' peut être considéré dans le chemin 'DocumentRoot'. – anubhava

Répondre

1

Demandez cette façon dans /home/.htaccess (racine du site):

RewriteEngine On 

# handle example.com 
RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(example)\.com$ [NC] 
RewriteRule .* somefolder/%1/$0 [L] 

# handle any sub.example.com 
RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
RewriteCond %{HTTP_HOST} ^([^.]+)\.(example)\.com$ [NC] 
RewriteRule .* somefolder/%2/%1/$0 [L] 
+0

presque parfait! seulement que quand j'essaye d'accéder au site Web de sous-domaine, "l'URL /somefolder/subname./ demandé n'a pas été trouvé sur ce serveur." montre. La période . 'importe. J'ai essayé de modifier, mais je ne pouvais pas. – klados

+0

désolé j'ai fait une erreur en 2ème règle. Essayez-le maintenant. – anubhava

+1

Ceci est LA réponse. Vraiment merci beaucoup! – klados

0

Je pense que vous devez modifier les paramètres du serveur, rendre le domaine dossier racine à ce que vous voulez.

+0

Je n'ai pas d'autorisation pour modifier le paramètre côté serveur – klados

+0

Vous utilisez cPanel? Ou xampp etc? – Samson

+0

mon fournisseur d'hébergement n'a pas de licence de ces fonctionnalités. – klados