У меня есть сайт в 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]