Назад | Перейти на главную страницу

перенаправить .php на extensionless?

Я очень, очень (очень!) Новичок в использовании мода rewrite ... У меня есть следующий набор в моем htaccess, и он работает, как ожидалось, для удаления расширения .php. Мой вопрос в том, как также сделать URL-адрес без расширения, если кто-то помещает какое-либо расширение в конец URL-адреса? Сейчас http://www.example.com/share все работает, но так же http://www.example.com/share.php. Я хочу удалить все расширения на этих страницах!

Options +FollowSymlinks
RewriteEngine on
# remove php extension from all matching files
RewriteRule ^(share|invite|submission|thankyou|confirm|over|report)$ $1.php [NC]

Я пробовал несколько вещей, и это всегда приводило к нарушению обеих функций. По какой-то причине это самое невозможное для быстрого поиска ответов в Google. Заранее спасибо!

ОБНОВЛЕНИЕ: работает определенным образом, но получает бесконечный цикл перенаправления:

Options +FollowSymlinks
RewriteEngine on
# reslove extensionless urls
RewriteRule ^(share|invite|submission|thankyou|confirm|over|report|emailtest)$ $1.php [NC]
# make .php redirect to extensionless urls
RewriteRule ^(share|invite|submission|thankyou|confirm|over|report).php$ /$1 [R=301,L,QSA]

Вы имеете в виду, если кто-то набирает .../share.php, вы хотите, чтобы это стало .../share? Если да, вам нужно его перенаправить.

RewriteRule ^(share|invite|submission|thankyou|confirm|over|report).php$ /$1 [R=302,L,QSA]

Измените этот 302 на 301, если он работает, чтобы сделать постоянное перенаправление.