Рейтинг:0

Удалите index.php и расширение файла на других страницах php, используя .htaccess.

флаг cn

Я хотел бы избавиться от необходимости включать index.php в свои ссылки. Вместо

example.com/about/index.php

я бы хотел, чтобы это было

пример.com/о/

Во-вторых, я также хотел бы, чтобы другие неиндексные страницы были доступны для навигации без расширения файла .php в URL-адресе. Вместо

example.com/about/who_we_are.php

я бы хотел, чтобы это было

example.com/about/who_we_are

Мне не повезло заставить оба работать одновременно. Вот что у меня есть в моем файле .htaccess:

Параметры - Индексы
DirectoryIndex index.php index.htm index.html
RewriteEngine включен
RewriteCond %{SERVER_PORT} 80
Правило перезаписи ^(.*)$ https://example.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
Правило перезаписи ^(.*)$ https://example.com/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
Правило перезаписи ^([^\.]+)$ $1.php [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Правило перезаписи ^(.*)$ index.php/$1 [L]

В настоящее время он удаляет .php с неиндексных страниц, но все индексные страницы каталога перенаправляются на домашнюю страницу.

Что я делаю не так?

Рейтинг:0
флаг cn

Вскоре после публикации этого вопроса я нашел решение этой проблемы.

# удалить .php; используйте THE_REQUEST для предотвращения бесконечных циклов
RewriteCond %{HTTP_HOST} ^www\.example\.com
RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP
Правило перезаписи (.*)\.php$ $1 [R=301]

# удалить индекс
RewriteRule (.*) index$ $1 [R=301]

# удалить косую черту, если это не каталог
RewriteCond %{REQUEST_FILENAME} !-d
Условия перезаписи %{REQUEST_URI} /$
Правило перезаписи (.*)/$1 [R=301]

# добавить .php для доступа к файлу, но не перенаправлять
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
Правило перезаписи (.*) $1\.php [L]

Я надеюсь, что это поможет любому, кто ищет решение этой проблемы.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.