Использование mod_rewrite для обслуживания мобильной версии страницы - PullRequest
3 голосов
/ 03 августа 2010

Я пытаюсь добавить дополнительный мобильный макет на существующий веб-сайт. При определенных обстоятельствах я хотел бы иметь возможность предоставлять контент для мобильной версии совершенно другого содержания, чем для той же страницы в обычной версии. Если пользователь посещает, скажем, m.example.com/food/apple.html, он увидит страницу, совершенно отличную от example.com/food/apple.html, без m. поддомен. В частности, я хотел бы иметь возможность создавать отдельные файлы apple.html и apple.mobile.html в каталоге, а затем использовать mod_rewrite для обслуживания мобильной версии вместо обычной, если пользователь находится в m. поддомен. Однако не каждая страница будет иметь отдельную мобильную версию, поэтому мне нужно сначала проверить, действительно ли существует мобильная версия, прежде чем пытаться ее обслуживать.

Возможно ли это? Я пробовал это:

RewriteCond %{SERVER_NAME} ^m\.
RewriteCond $1.mobile.html -f
RewriteRule (.*)\.html $1.mobile.html [L]

... Но, похоже, это не работает. В частности, второй RewriteCond не соответствует. Я думаю, что мне может понадобиться дать ему абсолютный путь. Но если так, как я могу сделать это, вставляя часть «.mobile»? А если нет, что я делаю не так?

1 Ответ

1 голос
/ 04 августа 2010

Для проверки -f вам нужен абсолютный путь, как вы и думали.Похоже, что это не должно быть большой проблемой в вашем случае, так как вы можете просто использовать %{DOCUMENT_ROOT}:

RewriteCond %{SERVER_NAME} ^m\.
RewriteCond %{DOCUMENT_ROOT}/$1.mobile.html -f
RewriteRule (.*)\.html $1.mobile.html [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...