Удалить (.php, .html) из URL с .htaccess
Согласно экспертам SEO нет никакого значения какие url-ы вы используете ( .php, .htm или .html). Зачем нужно убирать данные расширения со страниц? Да все по тому, что некоторые специалисты говорят что это очень хороший ход в плане оптимизации (для SEO). Но что лучше, а что хуже, никто не знает т.к данная технология скрыты от конечных пользователей. В своей статье «Удалить (.php, .html) из URL с .htaccess» расскажу как удалить расширения со страниц. Многие CMS уже используют данную технологию, думаю что не зря это все.
Удалить (.php) из URL с .htaccess
В качестве примера, возьмем следующую проблему:
Допустим что вы захотели преобразовать с http://linux-notes.org/test.php на http://linux-notes.org/test, то для этого открываем файл с .htaccess и прописываем:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L]
Проверяем работу.
Удалить (.html) из URL с .htaccess
В качестве примера, возьмем следующую проблему:
Допустим что вы захотели преобразовать с http://linux-notes.org/test.html на http://linux-notes.org/test, то для этого открываем файл с .htaccess и прописываем:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.html [NC,L]
Удалить разширения от файлов из URL с .htaccess
В качестве примера, возьмем следующую проблему:
Допустим что вы захотели преобразовать с http://linux-notes.org/test.html или http://linux-notes.org/test.php на http://linux-notes.org/test, то для этого открываем файл с .htaccess и прописываем:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.(php|html?)$ [NC,L]
На этом все, статья «Удалить (.php, .html) из URL с .htaccess» подошла к завершению.
Подскажите пожалуйста, а если файлы в папке http://linux-notes.org/dir/test.php как привести к виду http://linux-notes.org/dir/test то не только убрать расширение, но и без слеша оставить. Для всех файлов папки dir.
Спасибо
Попробуй следующим образом:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.+?/((dir|dir_2)/.+)$ $1.(html?|php)$ [NC,L]
Не проверял работу, как раз — расскажешь 😉