Rucklless
@Rucklless

Как отсечь расширение .php у одного(!) или нескольких файлов, не у всех?

Добрый день!
Необходимо сделать чтобы файл /contacts.php редиректился и открывался на /contacts
Нашел код:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/contacts$
RewriteRule ^ contacts.php

Но файл доступен как /contacts.php так и /contacts
Если отдельно прописать Redirect 301, то страница уходит в бесконечный редирект.

Так же нашел код:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^.*$ $0.php [L,QSA]
RewriteCond %{THE_REQUEST} ([^\s]*)\.php(\?[^\s]*)?
RewriteRule (.*) %1 [R=301,L]


Который работает как надо, но для всех файлов .php.
Можно ли его приспособить на один файл? Или есть ли какое другое решение?
Не спрашивайте зачем, желание клиента.
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
@dodo512
RewriteEngine On

RewriteCond %{THE_REQUEST} ^\S+\s/contacts\.php
RewriteRule ^ /contacts [R=301,L]

RewriteRule ^contacts$ /contacts.php [L]


Или так
RewriteEngine On

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^contacts\.php  /contacts [R=301,L]

RewriteRule ^contacts$ /contacts.php [L]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы