SEO Optimierung von HEROKU Rails 3 App
There was a time, when I shared a blog. This post was written by Stephan. See all blogpost from him or stalk him on github.
Bei einem letzten Projekt wurde gewünscht, dass alle Anfragen auf eine bestimmte Domain umgeleitet werden. Außerdem sollten Anfragen der Art "domainName.de" auf "www.domainName.de" umgeleitet werden - alles im Sinne der SEO und Google Gemeinde. Dafür bot sich natürlich eine Middleware an. Im Netz wurde ich auch schnell bei Github fündig.
https://github.com/iSabanin/www_ditcher
Die dort verwendete Schleife habe ich natürlich umgetauscht, damit alle Anfragen auf www.. weitergeleitet werden. Doch damit war es nicht genug. Die Seooptimierung wollte auch die von Heroku angebotene Domain appname.heroku.com auf die www-Domain weiterleiten. Ich habe hierfür den Quellcode der Middleware angepasst:
class WwwDitcher
def initialize(app, redirect_url)
@app = app
@url = redirect_url
end
def call(env)
request = Rack::Request.new(env)
if request.host.match(/(heroku.com)\z/)
unless @url.nil?
[301, {"Location" => @url}, self]
else
@app.call(env)
end
else
if request.host.starts_with?("www.")
@app.call(env)
else
[301, {"Location" => request.url.sub("//","//www.")}, self]
end
end
end
def each(&block)
end
end
Nun musst du die Middleware in production.rb einbinden:
Demo:Application.configure do
# Settings specified here will take precedence over those in config/environment.rb
# .......
# Middleware for redirect
config.middleware.use "WwwDitcher", ENV["HEROKU_REDIRECT_URL"]
end
Bei der Registrierung der Middleware musst du den Namen der Heroku Konfigurationsvariable mit übergeben. Bei mir heißt diese
ENV["HEROKU_REDIRECT_URL"]
Wenn bei der Heroku App noch keine entsprechende Konfigurationsvariable gesetzt wurde, wird die originale Heroku Domain (appname.heroku.com) aufgerufen.
Um die Umleitung zu schalten, musst du nun eine beliebige url definieren:
heroku config:add HEROKU_REDIRECT_URL="http://google.de"
Vielen Dank fürs lesen