Вопрос или проблема
Я хотел бы, чтобы мобильные пользователи перенаправлялись с не-AMP версии сайта на AMP версию.
Перенаправление главной страницы работает корректно, но с категориями это не так.
Этот файл htaccess проходит онлайн-валидатор без каких-либо проблем, как указано здесь: ссылка
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#главная страница
RewriteCond %{HTTP_USER_AGENT} iphone|ipad|android|blackberry [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{REQUEST_URI} !^/amp/$
RewriteRule ^ amp/ [R=301,L,QSD]
#страница категории
RewriteCond %{HTTP_USER_AGENT} iphone|ipad|android|blackberry [NC]
RewriteCond %{REQUEST_URI} !^/amp/$
RewriteCond %{REQUEST_URI} ^/(dom|zdorovye|krasota|novosti|otnosheniya|technologies|finansy|ezoterika)$ [NC]
RewriteRule ^(.*)$ amp/category/$1 [R=301,L,QSD]
</IfModule>
Ответ или решение
Проблема перенаправления с мобильной версии на AMP-версии категорий
Перенаправление мобильных пользователей с непроцессируемой (non-AMP) версии на AMP-версии вашего сайта имеет свои тонкости, особенно когда дело касается страниц категорий. Ваша конфигурация .htaccess
корректно обрабатывает перенаправление главной страницы, но не работает для страниц категорий. Разберёмся в этом вопросе более подробно.
1. Анализ текущего кода
Ваш файл .htaccess
выглядит следующим образом:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Главная страница
RewriteCond %{HTTP_USER_AGENT} iphone|ipad|android|blackberry [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{REQUEST_URI} !^/amp/$
RewriteRule ^ amp/ [R=301,L,QSD]
# Страница категории
RewriteCond %{HTTP_USER_AGENT} iphone|ipad|android|blackberry [NC]
RewriteCond %{REQUEST_URI} !^/amp/$
RewriteCond %{REQUEST_URI} ^/(dom|zdorovye|krasota|novosti|otnosheniya|technologies|finansy|ezoterika)$ [NC]
RewriteRule ^(.*)$ amp/category/$1 [R=301,L,QSD]
</IfModule>
Давайте проанализируем ситуацию.
2. Объяснение текущей конфигурации
-
Главная страница: Первая часть кода успешно обрабатывает мобильные перенаправления для главной страницы. Условия проверки
HTTP_USER_AGENT
иREQUEST_URI
срабатывают и перенаправляют запросы на AMP-версию, если пользователь использует мобильное устройство. -
Страницы категорий: Во второй части код проверяет, соответствует ли
REQUEST_URI
одной из указанных категорий. Если это так, то выполняется перенаправление на соответствующую AMP-страницу.
3. Возможные причины сбоя
Можете столкнуться с трудностями в перенаправлении страниц категорий по следующим причинам:
-
Неверные пути: Убедитесь, что путь к вашим AMP-страницам правильно прописан в правил перенаправления. Проверьте структуру ваших URL и углубляйтесь в логи сервера на предмет потенциальных ошибок.
-
Кеширование: Также возможно, что кеш браузера или серверное кеширование мешает корректной работе перенаправлений. Попробуйте очистить кеш и протестировать перенаправления в режиме инкогнито.
-
Необработанные случаи: Убедитесь, что все возможные URL для категорий охвачены в ваших правилах. Например, если есть подкатегории или дополнительные параметры в URL, возможно, они не учитываются.
4. Рекомендуемые действия
Для решения проблемы с перенаправлением страниц категорий попробуйте выполнить следующие действия:
-
Проверка структуры URL: Убедитесь, что все целевые AMP-URL соответствуют тем, что заданы в ваших правилах. Например, если они имеют вид
/category-name
, вам нужно будет правильно указать их в правилах перенаправлений. -
Обновление правил перенаправления: Если вы используете динамически генерируемые URL для категорий, вам может потребоваться более универсальное правило, которое учтет все возможные пути. Можно рассмотреть вариант:
RewriteRule ^(dom|zdorovye|krasota|novosti|otnosheniya|technologies|finansy|ezoterika)/?$ amp/category/$1 [R=301,L,QSD]
- Логи для отладки: Включите логи Apache для модуля
mod_rewrite
, чтобы увидеть, какие правила применяются и принимаются ли правильные условия.
5. Заключение
Настройка правильных перенаправлений между мобильными и AMP версиями сайта крайне важна для SEO и пользовательского опыта. Проанализировав существующую конфигурацию и отладив возможные проблемы, вы сможете обеспечить корректную работу всех перенаправлений. Очистите кеш и протестируйте внесенные изменения для убеждения в их работе. Успехов вам в этом процессе!