J'ai un site avec plusieurs sous-domaines et je veux que les Subrodains nommés soient différents de l'un de l'adresse www one.
J'ai essayé d'utiliser .htaccess, mais le Fastcgi ne le regarde pas. P >
Alors, j'essayais de configurer des itinéraires, mais il ne semble pas que vous ne puissiez pas faire une réécriture directe car chaque itinéraire a besoin d'un contrôleur: P>
map.connect '/robots.txt', :controller => ?, :path => '/robots.www.txt', :conditions => { :subdomain => 'www' }
map.connect '/robots.txt', :controller => ?, :path => '/robots.club.txt'
6 Réponses :
Si vous ne pouvez pas configurer votre serveur HTTP pour le faire avant que la demande soit envoyée aux rails, je voudrais simplement configurer un contrôleur «robots» qui rend un modèle comme:
def show_robot
subdomain = # get subdomain, escape
render :text => open('robots.#{subdomain}.txt').read, :layout => false
end
En réalité, vous voulez probablement définir un type MIME dans mime_types.rb code> et le faire dans un réponse_to code> bloc de sorte qu'il ne le renvoie pas comme ' Texte / HTML ' CODE>: class RobotsController < ApplicationController
def robots
subdomain = # get subdomain, escape
robots = File.read(RAILS_ROOT + "/config/robots.#{subdomain}.txt")
respond_to do |format|
format.txt { render :text => robots, :layout => false }
end
end
end
Merci d'avoir posté cela, cela m'a inspiré - j'ai simplifié cette technique un peu et mis à jour pour les rails 3. timbabwe.com/2011/08/...
Merci j'ai aimé votre solution. J'ai posté une solution Rails 3.x avec de légers changements.
Pourquoi ne pas utiliser de rails intégrés à des vues intégrées?
dans votre contrôleur Ajoutez cette méthode: p> dans la vue Créer un fichier: dans Vous pouvez ajouter une logique commerciale spécifique au besoin, mais de cette façon de ne lire aucun fichier personnalisé. P > p> app / vues /Static_pages/robots.txt.erb code> avec robots.txt content p> routes.rb code> place: p> /public/robots.txt code> p>
J'ai aimé la solution de Ta Tyree mais c'est très rails 2.x Centric alors voici ce que j'ai proposé pour le rail 3.1.x
mime_types.rb p> J'ai ajouté un petit quelque chose de plus sur celui-ci. Les personnes de référencement se plaignaient du contenu dupliqué à la fois dans les sous-domaines et dans les pages SSL, donc j'ai créé deux fichiers de robots un pour la production et une pour la non-production qui va également être servi avec toutes les demandes SSL / HTTPS en production. P> robots_controller.rb p>
pour les rails 3:
Créer un contrôleur robotsController: p> Créer des vues de robots (1 par sous-domaine): p> Ajouter un nouvel itinéraire dans Config / Routes.rb: (Notez l'option Format TXT) P>
Mime::Type.register "text/plain", :txt
comme de Par défaut, si vous utilisez l'option: simple, le texte est rendu sans
en utilisant la disposition actuelle. Si vous voulez des rails pour mettre le texte dans le
mise en page actuelle, vous devez ajouter la mise en page: une véritable option et utilisez le
extension .Text.erb pour le fichier de mise en page. source p>
blockQuote> dans
routes.rb code> p>