Intereting Posts
Как вы копируете объект PHP в другой тип объекта Как случайное нулевое ведущее строковое поле mysql Код php pdo, чтобы добавить дату с датой Улучшение канала Twitter JSON Передача переменных $ _GET (или $ _POST) с разбиением на страницы (SESSION не работает) PHP mock данные из конечной точки отдыха PHP / MySQL – как автоматически генерировать ссылку на удаление для строки в уже сгенерированной автоматически таблице? расположение таблицы – foreach Есть ли способ автоматически сделать скриншот веб-сайта через URL-адрес? Изменение macOS Sierra предотвращает «say», чтобы быть exec'd в скрипте PHP Регулярное выражение для соответствия блоку текста с первой двойной новой строкой? Как объяснить это ключевое слово наилучшим и простым способом? Важно ли проверять, является ли загруженный файл фактическим файлом изображения? mysql Выберите один столбец дважды из той же таблицы с разными датами в предложении where Выбранное значение выпадающего списка Cakephp не корректно отображается в Firefox, когда страница обновляется

скрыть расширение .php в url mod_rewrite

У меня есть сайт в PHP, и я пытаюсь скрыть расширение. Я нашел пару вещей через Google, но все они кажутся слишком сложными или они перенаправляют index на index.php : например, если вы пишете name.com/contact оно перейдет на name.com/contact.php . Я не хочу этого, я просто хочу:

  www.name.com/es/index.php to be www.name.com/es/inicio www.name.com/es/empresa.php to be www.name.com/es/empresa www.name.com/es/productos.php to be www.name.com/es/productos www.name.com/es/clientes.php to be www.name.com/es/clientes www.name.com/es/recetas.php to be www.name.com/es/recetas www.name.com/es/contacto.php to be www.name.com/es/contacto www.name.com/en/index.php to be www.name.com/en/home www.name.com/en/company.php to be www.name.com/en/company www.name.com/en/products.php to be www.name.com/en/products www.name.com/en/clients.php to be www.name.com/en/clients www.name.com/en/recepis.php to be www.name.com/en/recepis www.name.com/en/contact.php to be www.name.com/en/contact 

папка /en/ – английская версия, а папка /es/ – испанская версия

Также ссылки внутри веб-сайта также будут без расширения.

Например, образ, связанный с clientes , будет clientes а не clientes.php и если кто-то попытается перейти на /page.php , он все равно работает, но перенаправляет его на /page .

Файл htacces должен выглядеть так:

 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php 

Вы перенаправляете любой php-файл в URL-адрес с таким же именем с помощью «php».
Затем в ваших php-файлах вы можете проверить, содержит ли url расширение (http://blabla.com/bla .php ) и перенаправляет страницу на тот же самый с расширением.
Итак, в начале каждого php-файла вы должны вызвать эту функцию:

 function redirectIfNeeded(){ $url = $_SERVER["REQUEST_URI"]; if(preg_match("/\.php/$", $url)) header("Location: ".preg_replace("/\.php/",$url)); } 

Пожалуйста, вставьте файл .htaccess в корневой каталог, используйте этот код!

 Options +FollowSymlinks RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.+)$ /$1.php [L,QSA] 

Надежда !! это было бы полезно для кого-то!

 RewriteEngine on Rewritecond %{REQUEST_URI} !-f Rewritecond %{REQUEST_URI} !-d Rewritecond %{REQUEST_URI} !-l RewriteRule ^([\w\d-]+)$ $1.php [L] RewriteRule ^([^/.]+)$ $1.php [L]