За последние 24 часа нас посетили 32835 программистов и 1820 роботов. Сейчас ищут 847 программистов ...

Помогите проверить урл на содержание в нем /en/

Тема в разделе "PHP для новичков", создана пользователем dontdonkmedonks, 13 апр 2017.

  1. dontdonkmedonks

    dontdonkmedonks Активный пользователь

    С нами с:
    10 фев 2016
    Сообщения:
    19
    Симпатии:
    2
    Добрый день, использую такой код для проверки урл на содержание в нем /en/, но он работает только на странице site.ru/en/, на других страницах типа site.ru/en/exaple уже не срабатывает, пробовал дописать так /en/(.*), не работает. Помогите пожалуйста, понимаю что дело пустяковое, но я туплю))
    Код (Text):
    1. <?php if ($_SERVER['REQUEST_URI'] == '/en/') { // выводим на EN ?>
    2. english
    3. <?php } else { ?>
    4. русский
    5. <?php } ?>
     
  2. alexpride1993

    alexpride1993 Новичок

    С нами с:
    28 мар 2016
    Сообщения:
    56
    Симпатии:
    20
    Можно использовать функцию strpos() для поиска подстроки, в твоем случае это должно выглядеть примерно вот так:
    PHP:
    1. $requestUrl = $_SERVER['REQUEST_URI'];
    2. if (strpos($requestUr, '/en/') !== false)
    3. {
    4. //English
    5. }
    6. else
    7. {
    8. //Russian
    9. }
    Только обрати внимание на сравнение в if-е, оно обязательно должно быть строгим (!==, а не !=)
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
  4. dontdonkmedonks

    dontdonkmedonks Активный пользователь

    С нами с:
    10 фев 2016
    Сообщения:
    19
    Симпатии:
    2
    Сервер вываливает ошибку 500 по обоим примерам почему то, вот файл .htaccess, стандартный wordpress
    Код (Text):
    1. # BEGIN WordPress
    2. <IfModule mod_rewrite.c>
    3. RewriteEngine On
    4. RewriteBase /
    5. RewriteRule ^index\.php$ - [L]
    6. RewriteCond %{REQUEST_FILENAME} !-f
    7. RewriteCond %{REQUEST_FILENAME} !-d
    8. RewriteRule . /index.php [L]
    9. </IfModule>
    10.  
    11. # END WordPress
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    5 строка, убери минус после доллара
     
  6. dontdonkmedonks

    dontdonkmedonks Активный пользователь

    С нами с:
    10 фев 2016
    Сообщения:
    19
    Симпатии:
    2
    После того как убрал -
    Код (Text):
    1. Internal Server Error
    2.  
    3. The server encountered an internal error or misconfiguration and was unable to complete your request.
    4.  
    5. Please contact the server administrator at to inform them of the time this error occurred, and the actions you performed just before this error.
    6.  
    7. More information about this error may be available in the server error log.
    8.  
    9. Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Не надо ничего менять в стандартном .htaccess и он здесь не при чем.
    Код (Text):
    1. if (preg_match('#^/en/#', $_SERVER['REQUEST_URI']))
     
    dontdonkmedonks нравится это.
  8. dontdonkmedonks

    dontdonkmedonks Активный пользователь

    С нами с:
    10 фев 2016
    Сообщения:
    19
    Симпатии:
    2
    Спасибо! То что надо!!!