Мне нравится HTML5 Boilerplate Пола Айриша.Я включил большую часть того, что находится в файле .htaccess, в мой.
Мне нравится, как он перенаправляет на версию домена без www, а также добавляет косую черту, когда она отсутствует:
# ----------------------------------------------------------------------
# Suppress or force the "www." at the beginning of URLs
# ----------------------------------------------------------------------
# The same content should never be available under two different URLs - especially not with and
# without "www." at the beginning, since this can cause SEO problems (duplicate content).
# That's why you should choose one of the alternatives and redirect the other one.
# By default option 1 (no "www.") is activated. Remember: Shorter URLs are sexier.
# no-www.org/faq.php?q=class_b
# ----------------------------------------------------------------------
# Option 1:
# Rewrite "www.domain.com -> domain.com"
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteCond %{HTTP_HOST} ^m\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
# Add/remove trailing slash to (non-file) URLs
# ----------------------------------------------------------------------
# Google treats URLs with and without trailing slashes separately.
# Forcing a trailing slash is usually preferred, but all that's really
# important is that one correctly redirects to the other.
# http://googlewebmastercentral.blogspot.com/2010/04/to-slash-or-not-to-slash.html
# http://www.alistapart.com/articles/slashforward/
# http://httpd.apache.org/docs/2.0/misc/rewriteguide.html#url Trailing Slash Problem
# ----------------------------------------------------------------------
# Rewrite "domain.com/foo -> domain.com/foo/"
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
RewriteRule ^(.*)$ /$1/ [R=301,L]
</IfModule>
# ----------------------------------------------------------------------
Но что произойдет, если есть несколько припаркованных доменов (или псевдонимов)?Например, если основным доменом является www.domain.com, но припарковано следующее: www.domain.co.uk и www.domain2.com?Приведенный выше код не учитывает это и будет просто перенаправлять с www.domain.co.uk на domain.co.uk и с www.domain2.com на domain2.com.Я хочу, чтобы они все перенаправили на domain.com.В идеале я не хочу указывать правильное имя домена в файле .htaccess, потому что тогда мне придется изменять файл .htaccess каждого сайта отдельно.Возможно, это единственный способ, так как файл .htacess не сможет узнать правильное доменное имя - это правда?Я подумал о добавлении короткого фрагмента php вверху каждой страницы для перенаправления на правильное доменное имя (в любом случае короткий файл конфигурации добавляется к каждому html-файлу), но это, вероятно, не очень хорошая практика.
Любые идеи