2011-03-02 4 views
1

Été bloqué sur cela pendant des siècles et essayé des charges de corrections mais ne peut pas obtenir ma tête autour de lui!supprimer http de l'URL dans .htaccess (mod_rewrite)

Je cours un site où le contenu des pages est généré basé sur une URL. Par exemple:

http://www.mysite.com/http://www.supercheese.com 

générerait un mashup de contenu de mysite.com et supercheese.com

Le .htaccess j'utilise pour cela (à mysite.com) est:

<ifModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{ENV:REDIRECT_STATUS} 200 
    RewriteRule .* - [L] 
    RewriteRule assets/.* - [L] 
    RewriteRule ^(.*)$ test.php?url=$1 [NC,L] 

</ifModule> 

Donc, fondamentalement, la deuxième URL est passée dans une chaîne php.

Ma question est la suivante, je dois retirer le http: // de l'adresse à l'aide .htaccess

PAR EXEMPLE Si quelqu'un tape:

http://www.mysite.com/http://www.supercheese.com 

je besoin pour devenir:

http://www.mysite.com/www.supercheese.com 

Un grand merci à l'avance pour jeter un oeil à ce sujet. Vous êtes top les gars.

Répondre

2

Vous pouvez simplement utiliser un RedirectMatch

http://httpd.apache.org/docs/2.0/mod/mod_alias.html#redirectmatch

Essayez avec:

RedirectMatch ^/https?://(.*)$ http://www.mysite.com/$1 

Edit: vous devez le mettre avant les règles de réécriture

Edit: ajouter / avant http

Edit: David a raison, jetez un oeil à sa réponse et changez votre façon d'écrire ces URLs

+0

Salut, merci pour cela.J'ai essayé de le mettre à la fin, mais pas de chance :( – DrShamoon

+0

Vous êtes les bienvenus, cliquez sur Accepter – soju

+0

vous devez mettre cette RedirectMatch avant les règles de réécriture – soju

1

Il me semble que le schéma d'URL est intrinsèquement problématique.

L'utilisation d'un colon non codé : dans l'URL - autre que la suite de la http pour spécifier le protocole d'accès - semble faire penser le serveur qui fait l'authentification du formulaire http://username:[email protected]/.

Je sais qu'il ne répond pas directement à la question, la solution est de changer le schéma d'url. ;-(

+2

Je me souviens d'avoir des problèmes pour réécrire les URL contenant un schéma dans le chemin. Je suppose que le ":" devrait être codé en URL à% 3a – Capsule

+2

+1, '/' devrait être encodé aussi ': //' => '% 3A% 2F% 2F' – soju

+0

@Capsule, @soju: Effectivement, le résultat est que le' http: // ' L'URL va poser problème. dépouiller tout ça. –