Apache убрать index php

Как убрать index.php из урла?

но при этом со страниц типа site.ru/uslugi/index.php на site.ru/uslugi (без index.php) у меня не делается. Подскажите, как это можно сделать?

RewriteEngine On # Директива включает редиректы. RewriteBase / # Без директивы (.*) = /$1 будет /var/wwww/site/$1 с ней = /$1 ############################################################################ #### Убираем index.php, если он есть в конце URL #### ############################################################################ RewriteCond % =GET #Выявляем GET запрос в URL (не POST) RewriteCond % ^(.*)/index\.php$ #URL cодержит index.php в конце. RewriteRule ^(.*)$ %1/ [R=301,L] #Удалить index.php из URL.

При этих правилах редирект происходит, но url c site.ru/uslugi/ меняется на site.ru/?q=uslugi/. Как быть?

#RewriteCond % =GET #RewriteCond % ^(.*)/index\.php$ #RewriteRule ^(.*)$ %1/ [R=301,L]
#RewriteCond % =GET #RewriteCond % ^(.*)/index\.php$ #RewriteRule ^(.*)/index\.php$ $1 [R=301,L]

А вся эта свистопляска потому, что site.ru/uslugi/index.php и site.ru/uslugi/ открывают одну и туже стр. и тем самым делают дубль, что для seo плохо.

При этих правилах редирект происходит, но url c site.ru/uslugi/ меняется на site.ru/?q=uslugi/. Как быть?

При этом варианте, отрабатывается site.ru/index.php, но редиректа с site.ru/uslugi/index.php не происходит.

ShamblerR: я посмотрю настройки чпу в modx cmf еще раз, но практически на 80% уверен, что этот вопрос нужно решать с помощью 301 в .htaccess

в joomla 1.5 можно было настрочить ЧПУ с админки с панели управления 4 галочками, не думаю что сейчас модикс не умеет этого делат, вот честно

Могу утверждать что сейчас MODx лучше даже чем Joomla 3.0 и чпу там очень легко настраивается. И на сайте где я провожу свои манипуляции чпу настроить и работает нормально. Проблема как я уже и говорил в 301 редиректе и соответственно в дублях.

2. Если одна и та же страница открывается по адресам site.ru/uslugi.html, site.ru/uslugi/, site.ru/uslugi. Решается: RewriteRule (.+)\.html$ /$1/ [L,R] RewriteCond % !-f RewriteCond % !(.*)/$ RewriteCond % !(.*)sitemap.xml$ RewriteRule ^(.*[^/])$ $1/ [L,R=301]
3. Если одна и та же страница открывается по адресам site.ru/uslugi/ и site.ru/uslugi/index.php. Решается: RewriteCond % ^.*/index\.php RewriteRule ^(.*)index.php$ /$1 [R=301,L] #вот в этих двух строчках я и нуждался

Источник

Убираем .html, .php и .htm в конце URL-адресов на Apache/Nginx

Часто слышу, что сеошники советуют убирать окончания .html, .php и .htm в адресах ваших сайтов – якобы, это негативно влияет на продвижение. Кто-то же говорит, что это просто визуально добавляет адресу лишний мусор.

Читайте также:  Batch file rename python

В любом случае, убирать или оставлять эти окончания, решать вам, я же покажу, как это реализовать на статичном сайте (то есть сайте, находящемся не на CMS). Почему только на статичном? Потому что для различных CMS это реализовывается разными методами, о которых я также расскажу в последующих статьях.

Не утверждаю на 100%, что этот метод не будет работать на какой-то из CMS – пробуйте и о результатах отписывайтесь в комментариях.

Убираем .html, .php и .htm на Apache

Как вы знаете, в Apache существует файл .htaccess, который содержит в себе набор настроек и конфигураций сервера. С его помощью мы и будем убирать ненужные нам окончания.

1. Подключитесь к сайту по FTP и в корне сайта найдите файл .htaccess. Откройте его. Если такой файл отсутствует – создайте.

2. Найдите строчку, содержащую:

Сразу после нее вставьте следующие правила.

Если вам необходимо убрать .php:

 RewriteCond %{REQUEST_FILENAME> !-f RewriteRule ^([^.]+)$ $1.php [NC,L]

Если вам необходимо убрать .html:

 RewriteCond %{REQUEST_FILENAME> !-f RewriteRule ^([^.]+)$ $1.html [NC,L]

Если вам необходимо убрать .htm:

 RewriteCond %{REQUEST_FILENAME> !-f RewriteRule ^([^.]+)$ $1.htm [NC,L]

Если строчка «RewriteEngine On» отсутствует в файле – добавьте ее в самое начало.

После чего сохраните изменения и отправьте файл обратно на сайт. Если раньше адреса на вашем сайте были вида

 https://www.pandoge.com/page.php

то теперь вы можете открыть эту страницу по адресу:

Убираем .html, .php и .htm на Nginx

1. Для того чтобы подобную настройку произвести в Nginx, откройте файл конфигурации по адресу:

в FTP (если вам позволяют права) либо через панель управления сервером.

2. Далее, в секцию location / , вставляем необходимые правила.

Если вам необходимо убрать .php:

Если вам необходимо убрать .html:

Читайте также:  Programming language like python

Если вам необходимо убрать .htm:

Если в процессе настройки у вас что-то не получается – пишите об этом в комментариях.

Установка бесплатного сертификата от Let’s Encrypt на сайт с сервером CentOS 6 + ISPmanager 4 + Nginx + Apache

Источник

How to Remove index.php from URL

how to remove index.php from URL in apache

By default, PHP platforms such as WordPress and Codeigniter append index.php at the end of website URL, which is not really required. Here are the steps to remove index.php from URL using .htaccess in Apache web server. You can use these steps to remove index.php from WordPress, Codeigniter and other PHP websites.

How to Remove index.php from URL

We will basically redirect the index.php to URL without it. For that we will need mod_rewrite Apache module.

Before proceeding further, please ensure that you have enabled mod_rewrite in Apache web server. Here are the steps to enable mod_rewrite in Apache. At the end of it, you will have created a .htaccess file for your website.

1. Open .htaccess file

Open terminal and run the following commands to open .htaccess file. We have used the default file path of .htaccess file. You can change it as per your requirement.

$ sudo vi /var/www/html/.htaccess

2. Remove index.php from URL

Add the following lines in .htaccess file.

RewriteEngine On RewriteCond % !-f RewriteCond % !-d RewriteRule ^(.*)$ index.php/$1 [L]

Let us look at each line above. The first line enables mod_rewrite if it is not enabled already.

The second line matches URLs that are not files. The third line matches URLs that are not directories. So we are looking to match URLs that are neither files nor directories.

The last line means that if the two RewriteCond statements before it are matched for a URL, then it will be redirected to URL without index.php in it.

3. Restart Apache web server

Restart Apache server to apply changes

$ sudo systemctl restart httpd

Источник

Как убрать php из URL адреса?

Допустим, у вас есть статический веб-сайт с различными PHP файлами. При запросе, о ни формируют URL, такой как например — domain.com/index.php или domain.com/serviers.php и т.п, и вы хотите убрать index.php из URL, сделав ЧПУ. После этого вы задаете себе вопрос — Как убрать php из URL ? Все это можно легко исправить с помощью mod rewrite

Читайте также:  Css display div with no content

Как убрать php из url адреса правильно

Конечно, вы можете создать отдельную папку для каждой страницы, а затем изменить имена файлов на index.php внутри каждой из этих папок. Это будет работать, но это не очень хорошее решение, но оно имеет право на существование если сайт создается «на коленке».

Однако mod rewrite — является отличным решением для этого рода задач. Mod Rewrite позволяет переписать URL-адреса для веб-сайтов на основе Apache.

Весь необходимый код размещается внутри файла с именем .htaccess, который помещается в корневой каталог вашего проекта. Давайте, теперь создадим такой файл.

Mod rewrite как включить ?

Сначала нужно проверить, включена ли перезапись на сервере с помощью ifmodule mod rewrite c :

Дальнейшее размещение вашего кода внутри этой проверки означает, что он будет работать только при включенной перезаписи.

Включаем работу механизма преобразований RewriteEngine :

При необходимости, принудительно указываем использовать HTTPS:

RewriteCond % off RewriteRule (.*) https://%%

Кстати, если вы работаете локально и используете openserver, то настройку https ssl сертификата вы можете произвести используя мой мануал по ссылке из прошлых публикаций.

Устанавливаем корневой RewriteBase — базовый URL для преобразований в контексте каталога:

Теперь мы готовы определить URL-адреса, которые мы будем использовать. Именно два пункта ниже как раз и будут убирать php из url. Мы используем следующую структуру определения:

  1. RewriteRule, за которым следует имя, которое вы хотите использовать;
  2. После имени из пункта выше, следует фактический путь к странице .php

Например, следующий код уберет index php из url:

RewriteRule ^index$ index.php

С этими настройками, обращение к /about фактически загрузит /about.php, однако обратите внимание, что старый url /about.php все еще будет работать, но вы обновите все ссылки, чтобы перейти к /about.

Готовый пример перезаписи

Теперь собираем все вместе:

 RewriteEngine On RewriteCond % off RewriteRule (.*) https://%% RewriteBase / RewriteRule ^about$ about.php RewriteRule ^services$ services.php 

Скопируйте код выше в свой .htaccess файл на сервере и сохраните. Теперь, при обращении к страницам файл htaccess сможет убрать расширение php в конце и сделает вывод приятным и простым.

Источник

Оцените статью