2010-12-12 39 views
4

Il y a une page avec deux domaines:
www.exampleone.com
www.exampletwo.comJ'ai besoin d'aide avec réoriente

je besoin d'une redirection vers la page de démarrage:
www.exampleone.com-www.exampleone.com/#!/news.html
www.exampletwo.com à www.exampletwo.com/#!/news.html

et last but not least, pour chaque page J'ai besoin d'une redirection comme celle-ci, par exemple: www.exampleone.com/about.html-www.exampleone.com/#!/about.html www.exampletwo.com/about.html à www.exampletwo.com/#!/about.html

Je ne sais pas vraiment comment résoudre cela, dois-je utiliser Javascript ou .htaccess? pour la dernière redirection dans mon exemple, il est préférable d'utiliser les bonnes conditions? mais comment?

des idées?

Remarque: Le contenu est chargé avec ajax, de sorte que la page d'index est toujours le même, ce pourquoi la chose /#!/....

EDIT: simple, il y a les adresses en direct http://www.jester04.ch ou http://www.jester04baden.ch, la redirection de startpage est résolu comme vous pouvez le voir dans le fichier js, mais pour le /#!/ réoriente je encore besoin d'aide, je vous remercie.

+0

Qu'est-ce que vous utilisez actuellement pour gérer vos URL shebang (#!) Dans JS pour charger la page via ajax? J'imagine que vous pourriez mettre quelque chose dans la gestion de la redirection quand il n'y en a pas. – Ben

+0

@ben: le shebang est en raison de la méthode [google ajax crawling] (http://code.google.com/intl/de-DE/web/ajaxcrawling/docs/getting-started.html), pour le support de bookmark et historique J'utilise le plugin jQuery. – Thomas

Répondre

2

Vous pouvez mettre ce bloc de code JS dans le fichier séparé .js comprennent alors ce fichier dans chaque page:

var sURL = (window.location.href + "").replace("http://", ""); 
if (sURL.indexOf("/#!/") < 0) { 
    if (sURL.substr(sURL.length - 1, 1) == "/") 
     sURL = sURL.substr(0, sURL.length - 1); 
    var arrTemp = sURL.split("/"); 
    var sDomain = arrTemp[0]; 
    var sPage = (arrTemp.length > 1) ? arrTemp[arrTemp.length - 1] : "news.html"; 
    var sNewUrl = sDomain + "/#!/"; 
    for (var i = 1; i < arrTemp.length - 1; i++) 
     sNewUrl += arrTemp[i] + "/"; 
    sNewUrl += sPage; 
    window.location.href = "http://" + sNewUrl; 
} 
+0

Solution intéressante, mais malheureusement, cela ne fonctionnera pas. quand je tape 'http: // exampleone.com' les redirections vont comme ceci' http: // localhost/#! // www.exampleone.com/' Pouvez-vous expliquer le code un peu s'il vous plaît? Je vous remercie. – Thomas

+0

@Thomasz ouais désolé oublié le 'http: //' - fixé ce maintenant. Le code prend l'URL actuelle "tel quel" et la divise par le caractère '/' pour trouver le domaine (par exemple www.exampleone.com) puis il construit une nouvelle URL en utilisant le domaine, en ajoutant le '/ #! /' partie et en ajoutant le reste des parties de l'URL après cela. Un avantage est qu'il va préserver les données de la chaîne de requête, pas sûr que d'autres solutions le feront. –

+0

@Shadow Wizard, merci pour vos efforts, celui-ci fonctionne très bien! J'ai juste une dernière requête, quand vous allez sur le site avec juste le domaine http://www.jester04.ch, la redirection vers la page d'accueil "de/news.html" ne fonctionnera malheureusement pas, elle ajoute le '/ # !/'mais rien de plus. J'essaie de savoir pourquoi ... – Thomas

0

devrait fonctionner:

redirect 301/http://www.exampleone.com/#!/news.html 

redirect 301 /about.html http://www.exampleone.com/#!/about.html 

même pour exampletwo.com

Mettre cela dans un fichier .htaccess dans le dossier racine.

3

D'abord, je réoriente les deux pages d'accueil:

RewriteCond %{REQUEST_URI} ^/$ 
RewriteRule (.*) /#!/news.html [R,L] 

Puis tous les autres pages

RewriteRule (.*) /#!/$1 [R,L] 

N'a pas testé mais cela devrait fonctionner.

+0

Merci, c'est ce que je recherche! mais il y a un problème avec le '/ #! /', avec votre solution, ça donne 'http: //exampleone.ch/%23!/news.html', une idée? – Thomas

+0

@Thomasz, le # et après ne sont jamais envoyés au serveur, donc cette solution redirigera toutes les demandes initiales vers http://exampleone.ch/#!/ quoi que ce soit sur http://exampleone.ch/#!/news .html – Ben

+0

@ben: oui vous avez raison. Mais le contenu de la page est chargé avec ajax, il n'y aura jamais de rechargement dans le navigateur (sauf le premier certainement). avec le fragment de hachage je dis, quelle page devrait être chargée avec ajax. Cette solution de Stephan Muller fonctionnera, le seul problème est que le signe '# 'ne s'affichera pas correctement, il doit s'agir d'un problème d'encodage ou autre chose ... – Thomas