Перенаправления Htaccess в зависимости от ОС - PullRequest
0 голосов
/ 28 мая 2020

1- Мне нужен код .htaccess для этого условия Если пользователь щелкнул: website1.download ИЛИ website2.download Он перенаправляет пользователя в зависимости от его ОС, например:

2 - У меня более одного веб-сайта на моем хосте, и мне нужно создать один .htaccess для всех веб-сайтов на хосте, где я может создать файл .htaccess?

Это коды htaccess, и он не работает:

<If "req('Host') = 'website1.download' && = 'website2.download'">
    # turn on rewrite engine
    RewriteEngine on

    # only detect smart phone devices if we are not on mobile site
    # to prevent redirect looping
    RewriteCond %{HTTP_HOST} !^https://google.com/$

    # Android
    RewriteCond %{HTTP_USER_AGENT} "android" [NC]
    # redirect to google play
    RewriteRule .? https://play.google.com/store%{REQUEST_URI}  [L,R=302]

    # iOS
    RewriteCond %{HTTP_USER_AGENT} "android" [NC]
    # redirect to app store
    RewriteRule .? https://www.apple.com/ios/app-store/%{REQUEST_URI}  [L,R=302]
</If>

1 Ответ

0 голосов
/ 01 июня 2020

Хорошо, я выберу example.com и example.net, потому что они для этого предназначены. Кроме того, я предполагаю, что эти домены указывают на ваш сервер, и все они тоже были к нему привязаны. Наконец, я предполагаю, что у вас уже есть шаблон для обнаружения устройства? В твоем вопросе не очень ясно. (Если вы этого не сделаете, вы, вероятно, можете просто использовать Google и этот поток .)

Вы можете просто сложить RewriteCond и объединить их с OR

RewriteCond %{HTTP_HOST} example.com [NC,OR]
RewriteCond %{HTTP_HOST} example.net [NC]
RewriteCond %{HTTP_USER_AGENT} "android" [NC]
RewriteRule .? https://play.google.com/store%{REQUEST_URI}  [L,R=302]

Технически это тоже регулярное выражение, поэтому следует позаботиться о специальных символах, а также о том, чтобы c были более конкретными, добавляя поддержку поддоменов и просто объединяя все в одно условие.

RewriteCond %{HTTP_HOST} ^(www\.)?example\.(com|net)$ [NC]
RewriteCond %{HTTP_USER_AGENT} "android" [NC]
RewriteRule .? https://play.google.com/store%{REQUEST_URI}  [L,R=302]

Есть HTTP_HOST vs SERVER_NAME, о которых вам тоже следует знать.

Все, что сказано, я не могу придумать хорошего причина сделать это. С точки зрения SEO, вы собираетесь скрыть 2 из 3 перенаправлений, потому что пауки хранят информацию, которую они находят по заданному URL-адресу, и если это изменится, победит самое последнее изменение. С точки зрения пользователя, люди в основном обучены нажимать на значки в магазинах, я бы не стал вводить что-то новое и странное. Если вы пытаетесь отслеживать клик, я бы просто использовал JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...