скрыть расширение .php в URL mod_rewrite - PullRequest
1 голос
/ 05 июня 2011

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

Ответы [ 3 ]

7 голосов
/ 05 июня 2011

Файл 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));
}
0 голосов
/ 11 июня 2013
RewriteEngine on

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

RewriteRule ^([^/.]+)$ $1.php [L]
0 голосов
/ 01 июня 2013

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

Options +FollowSymlinks

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME}.php -f

RewriteRule ^(.+)$ /$1.php [L,QSA]

Надежда !! кому-то было бы полезно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...