2010-01-11 3 views
0

Mon fichier .htaccess a le code suivant:nom de domaine dans l'URL comme variables

RewriteEngine on 
RewriteRule ^/?(.*)$ index.php?domain=$1 [L] 

J'essaie d'obtenir des noms de domaine en tant que variables d'URL comme:

hxxp: //www.example .com/www.domain.name ou

hxxp: //www.example.com/subdomain.domain.name ou

hxxp: //www.example.com/domain.name

mais avec $ _GET ['domain'] ma variable est toujours 'index.php' et non les noms de domaine.

Avec hxxp: //www.example.com/domain/www.domain.name et le code .htaccess

RewriteEngine on 
RewriteRule ^domain/?(.*)$ index.php?url=$1 [L] 

tout est OK, mais je voudrais enlever la partie 'domaine /' de les URL.

J'ai cherché pour cela, mais je n'ai rien trouvé. Est-ce que quelqu'un pourrait m'aider avec ça?

Répondre

0

quelque chose comme

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /index.php?domain=$1 [L] 

dans ce cas 1 $ sera:

http://site/www.example.com  $1 = www.example.com 
http://site/www.example.com/xyz $1 = www.example.com/xyz 
+0

Merci! Cela fonctionne, mais redirige comme une URL non moteur de recherche. Je voudrais laisser les URL comme dans mon exemple. – digitron

+0

k, si vous supprimez le [R = 302] il fera une redirection interne, en préservant l'url soigné (édité ci-dessus) – jspcal

+0

merci, cela fonctionne parfaitement! – digitron

0

Essayez cette règle:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^[^/.](\.[^/]+)+$ index.php?domain=$0 [L] 

Cette réécrira toute demande avec un chemin d'URL qui contient au un point (foo.bar, foo.bar.baz, etc.) à votre index.php.

+0

Merci! Le code que vous avez écrit n'a pas fonctionné pour moi (erreur 404 introuvable pour un nom de domaine entré après la barre oblique). Je suis assez nouveau pour mod_rewrite, mais j'ai modifié la dernière ligne à RewriteRule^([^ /] +) $ index.php? Url = $ 1 [L] et cela fonctionne, même si je ne sais vraiment pas ce qu'il fait. – digitron

Questions connexes