2010-06-05 7 views
0

Je suis un peu un noob à ces choses mais j'essaye de faire un sous-domaine virtuel simple avec .htaccess. Je caractère générique activée et après beaucoup de creuser, voici ce que je suis venu avec:Comment puis-je faire fonctionner mon htaccess (sous-domaines)?

rewriteEngine On 
rewriteCond %{HTTP_HOST} !^$ 
rewriteCond %{HTTP_HOST} !^(www\.)?khpedia\.com$ [NC] 
rewriteCond %{HTTP_HOST}<->%{REQUEST_URI} ^(www\.)?([^.]+).*<->/([^/]+) [NC] 
rewriteCond %2<->%3 !^(.*)<->\1$ [NC] 
rewriteRule ^(.+) /%2/$1 [L] 

Mon répertoire est configuré comme

-root
--wiki
---- index .php
--test

Actuellement, lorsque je me rends sur wiki.khpedia.com, une page est introuvable. Quand je voyage sur wiki.khpedia.com/index.php, il se rend sur wiki.khpedia.com/wiki/index.php. Je suis également en mesure d'accéder à wiki.khpedia.com/test. Si cela ne semble pas encore évident, je veux pouvoir aller sur wiki.khpedia.com/index.php et voir wiki.khpedia.com/wiki/index.php mais pas dans ma barre d'adresse. Désolé pour le bloc de texte et merci pour l'aide.

Répondre

0

Cela fonctionne sur le côté Apache:

RewriteCond %{HTTP_HOST} !^www\.khpedia\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(.+).khpedia\.com$ [NC] 
RewriteRule ^(.*) /%1/$1 [L,QSA] 

Mais vous êtes un logiciel wiki pourrait constituer son propre esprit sur les redirections/urls.

+0

hmm oui, c'est logique mais je ne pense toujours pas que ça marche pour moi. Lorsque je voyage sur wiki.khpedia.com, j'obtiens une erreur de serveur interne. Cependant, quand je me rends sur test.khpedia.com/rewrite.php, je peux voir root/test/rewrite.php. Mais pour une raison quelconque, je peux aussi me rendre sur test.khpedia.com/test/rewrite.php et voir le même fichier. Je ne sais pas si cela compte, mais merci. – Bryan792

+0

Changé un + à un * qui devrait prendre en charge l'échec de "http://wiki.khpedia.com/". Nous pourrions essayer une réécriture-réécriture complexe (http_host, request_filename) pour essayer d'obtenir une redirection vers le sous-domaine 'non-dir' (http: //wiki.aa/wiki/index.php => http: //wiki.aa /index.php), mais je pense que vous êtes beaucoup plus facile de faire une vérification dans le .htaccess du sous-répertoire lui-même. – Wrikken

0
RewriteCond ^(.*)$ /wiki/$1 [L] 

Je ne sais pas où les sous-domaines entrent dans votre question. Pourriez-vous donner quelques exemples d'URL auxquelles vous voulez accéder dans le navigateur et à quoi elles doivent pointer sur le serveur?

EDIT | Ah, je vois maintenant, la réponse de Wrikken gère les sous-domaines correctement :)

Questions connexes