Добавление одного 0 (нуля) к концу URL, когда facebook.com является реферером - PullRequest
0 голосов
/ 27 августа 2011

Мне нужно добавить 0 (ноль) в конце каждого из моих URL, когда посетители нажимают на facebook.com.

Я смог заставить это работать, используя это в моем .htaccess:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(www\.)?facebook\.com [NC]
RewriteCond %{QUERY_STRING} ^$
RewriteRule . %{REQUEST_URI}?id=FB [R=301,L]

Проблема в том, что я не хочу использовать знак вопроса, и при попытке использовать приведенный ниже код в моем .htaccess URL уничтожается (я получаю несколько нулей вместо одного).

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(www\.)?facebook\.com [NC]
RewriteCond %{QUERY_STRING} ^$
RewriteRule . %{REQUEST_URI}0 [R=301,L]

Можно ли добавить только один ноль в конец моих URL, используя этот метод? Спасибо за любые рекомендации.

1 Ответ

1 голос
/ 27 августа 2011

Конечно, вы можете - но это в значительной степени зависит от используемых вами URL.

Вам нужно добавить 1 дополнительное условие и перенаправлять только в том случае, если запрошенный URL уже не содержит 0 в конце (это будетбыть "меткой перенаправления" - свидетельство того, что URL уже был перенаправлен).Это единственный известный мне способ при таких обстоятельствах / требованиях.

RewriteEngine On

RewriteCond %{HTTP_REFERER} ^http://(www\.)?facebook\.com [NC]
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{REQUEST_URI} !0$
RewriteRule . %{REQUEST_URI}0 [R=301,L]

Очевидно (как я уже упоминал в самом начале) - это не будет работать, если URL уже заканчивается на 0 (мыречь идет о части пути URL, а не о строке запроса).

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