Редактиране на код

Дискусията в 'Web Development' стартирана от Scanolions, Окт 5, 2018.

  1. Scanolions

    Scanolions Member

    Рег.:
    Септ 26, 2011
    Съобщения:
    122
    Харесвания:
    12
    Точки:
    18
    Някой може ли да ми редактира този код, смисъл може ли да се направи така че на определени ботове да не се отварят ads1,ads2,ads3 файла. Както е направено за определени ИП адреси като се въведат ИП адреси и за тях не се зарежда този файл, искам така например за google bot като се напише за бота на гугъл да не се зарежда. Както например в .htaccess се забраняват ботовете по имената им искам и тука така да се направи, ако е възможно.

    <?php
    $ip = $_SERVER['REMOTE_ADDR'];
    $ips = array('ТВОЙТО ИП');

    foreach ($ips as $oo){
    if($oo === $ip){ }else{
    $theAds = array('ads1.php', 'ads2.php', 'ads3.php');
    include $theAds[mt_rand(0, count($theAds) - 1)];
    }
    }
    ?>
     
  2. KISS

    KISS Active Member

    Рег.:
    Ноем 8, 2009
    Съобщения:
    810
    Харесвания:
    104
    Точки:
    43
  3. Scanolions

    Scanolions Member

    Рег.:
    Септ 26, 2011
    Съобщения:
    122
    Харесвания:
    12
    Точки:
    18
    Да видях и как трябва да изглежда кода ми като се добави в този код, че да проверява и после ако е той да не му показва, че не ме бива в php
     
  4. AseasRoa

    AseasRoa Well-Known Member

    Рег.:
    Юни 22, 2014
    Съобщения:
    904
    Харесвания:
    286
    Точки:
    63
    тия неща обикновено се правят в .htaccess, не виждам причина да ги ръгаш в php, особено пък като не му и разбираш
     
  5. Scanolions

    Scanolions Member

    Рег.:
    Септ 26, 2011
    Съобщения:
    122
    Харесвания:
    12
    Точки:
    18
    С .htaccess какъв е варианта да забраня на определени ботове да не се зареждат тези файлове ?
     
  6. AseasRoa

    AseasRoa Well-Known Member

    Рег.:
    Юни 22, 2014
    Съобщения:
    904
    Харесвания:
    286
    Точки:
    63
    специфичното при .htaccess е, че никой, ама никой не знае как точно работи, и всеки път като решиш да правиш нещо в този файл отваряш и питаш Google
     
  7. Scanolions

    Scanolions Member

    Рег.:
    Септ 26, 2011
    Съобщения:
    122
    Харесвания:
    12
    Точки:
    18
    Като сложа така, дава грешка 500. Къде ми е грешката, а и как трябва да се укаже пътя до файла смисъл файла ads1.php ми се намира на public_html/wp-content/themes/anima ? И тъй като са 3 файла така ли трябва да се изброяват ads1.php|ads2.php|ads3.php ?

    BrowserMatchNoCase "GoogleBot" bad_bot
    <Files ads1.php>
    Require not env bad_bot
    </Files>
     
  8. Scanolions

    Scanolions Member

    Рег.:
    Септ 26, 2011
    Съобщения:
    122
    Харесвания:
    12
    Точки:
    18
    Кода така си работи, но тъй като файловете се извикват от php кода и не може да се блокира и пак си зареждат. Единствения вариант е php кода да се редактира и да се спре.

    BrowserMatchNoCase "Chrome" bad_bot
    <FilesMatch "(ads1|ads2|ads3)\.php$">
    <RequireAll>
    Require not env bad_bot
    </RequireAll>
    </FilesMatch>
     
  9. Doris

    Doris New Member

    Рег.:
    Юни 6, 2018
    Съобщения:
    29
    Харесвания:
    10
    Точки:
    3
    Пробвай така:
    <?php
    if(strpos( $_SERVER['HTTP_USER_AGENT'], 'Googlebot' )=== false){
    $theAds = array('ads1.php', 'ads2.php', 'ads3.php');
    include $theAds[mt_rand(0, count($theAds) - 1)];
    }
    ?>
     
    Scanolions харесва това.
  10. Scanolions

    Scanolions Member

    Рег.:
    Септ 26, 2011
    Съобщения:
    122
    Харесвания:
    12
    Точки:
    18
    Е златен си, ако искам да изброявам няколко бота така ли трябва да е 'Googlebot','Bing','Yahoo' и т.н.
     
  11. Doris

    Doris New Member

    Рег.:
    Юни 6, 2018
    Съобщения:
    29
    Харесвания:
    10
    Точки:
    3
    Според мен, ако използваме
    https://deviceatlas.com/blog/list-of-user-agent-strings
    ще е така:

    <?php
    // Искаме да блокираме Goglebot Bing Yahoo и IP = 95.87.103.108
    if(strpos( $_SERVER['HTTP_USER_AGENT'], 'Googlebot' )=== false && $_SERVER['HTTP_USER_AGENT'], 'Yahoo' )=== false
    && $_SERVER['HTTP_USER_AGENT'], 'bingbot' )=== false && strpos( $_SERVER['REMOTE_ADDR'], '95.87.103.108' )=== false )
    {
    $theAds = array('ads1.php', 'ads2.php', 'ads3.php');
    include $theAds[mt_rand(0, count($theAds) - 1)];
    }
    ?>
     
    Scanolions харесва това.
  12. AseasRoa

    AseasRoa Well-Known Member

    Рег.:
    Юни 22, 2014
    Съобщения:
    904
    Харесвания:
    286
    Точки:
    63
    Не знам защо ти е да указваш файл, след като .htaccess работи на ниво папка. А това че има грешка 500 не е причина да решиш, че не може да се направи. Грешката най-вероятно идва от това, че нямаш пуснат някой модул на Apache, който работи с BrowserMatchNoCase. Но хората го правят и без такива модули, ами само с mod_rewrite: https://stackoverflow.com/questions...spiders-for-a-special-directory-with-htaccess
     
  13. Scanolions

    Scanolions Member

    Рег.:
    Септ 26, 2011
    Съобщения:
    122
    Харесвания:
    12
    Точки:
    18
    Мерси :)
     
    Последно редактирано: Окт 7, 2018

Сподели страницата

  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies.
    Dismiss Notice