Обработка субдоменов подстановочных знаков с помощью Apache, за исключением www, включая SEF - PullRequest
1 голос
/ 07 октября 2009

Существует ответ на вопрос о работе с поддоменами подстановочных знаков, но он не отвечает всем моим потребностям. Мне нужно сделать все это, предполагая, например, что домен example.com :

  1. Если указан домен www.example.com , он должен перенаправить 301 на example.com , потому что я не хочу иметь дублированный контент, который будет создавать проблемы в поисковые системы.

  2. Если доменом является everythingelse.example.com , он должен молча перенаправить на example.com , чтобы программное обеспечение могло выбрать, какой поддомен был запрошен, и действовать соответственно. 1019 *

  3. Кроме того, любая спецификация после доменного имени, которая не относится к фактическому файлу или каталогу, должна быть перенаправлена ​​на index.php (снова программа выяснит, что все это значит) , Поэтому что-нибудь.example.com / some / search / engine / friendly / спецификации должно перенаправить на example.com / index.php .

Я могу заставить это работать, но пока не достигну цели. Любые предложения!

1 Ответ

0 голосов
/ 07 октября 2009

Попробуйте эти правила:

# 1. rule
RewriteCond %{HTTP_HOST} =www.example.com
RewriteCond %{HTTPS} ^on(s)|
RewriteRule ^ http%1://example.com%{REQUEST_URI} [L,R=301]

# 2. rule
RewriteCond %{HTTP_HOST} ^([^/.]+)\.example\.com$
RewriteRule ^ /absolute/filesystem/path/to/example.com%{REQUEST_FILENAME} [L]

# 3. rule
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
...