Добрый день, использую такой код для проверки урл на содержание в нем /en/, но он работает только на странице site.ru/en/, на других страницах типа site.ru/en/exaple уже не срабатывает, пробовал дописать так /en/(.*), не работает. Помогите пожалуйста, понимаю что дело пустяковое, но я туплю)) Код (Text): <?php if ($_SERVER['REQUEST_URI'] == '/en/') { // выводим на EN ?> english <?php } else { ?> русский <?php } ?>
Можно использовать функцию strpos() для поиска подстроки, в твоем случае это должно выглядеть примерно вот так: PHP: $requestUrl = $_SERVER['REQUEST_URI']; if (strpos($requestUr, '/en/') !== false) { //English } else { //Russian } Только обрати внимание на сравнение в if-е, оно обязательно должно быть строгим (!==, а не !=)
PHP: if ( in_array ( 'en', explode ( '/', mb_strtolower ( trim ( parse_url ( $_SERVER['REQUEST_URI'], PHP_URL_PATH ), ' /' ), 'UTF-8' ) ?: [] ) ) ) { # En } else { # Ru }
Сервер вываливает ошибку 500 по обоим примерам почему то, вот файл .htaccess, стандартный wordpress Код (Text): # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
После того как убрал - Код (Text): Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log. Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Не надо ничего менять в стандартном .htaccess и он здесь не при чем. Код (Text): if (preg_match('#^/en/#', $_SERVER['REQUEST_URI']))