Простое расширение для mod_rewrite - PullRequest
0 голосов
/ 12 января 2012

Я хочу скрыть расширения моих страниц, чтобы:

  • /page
  • /page/
  • /page.html

Все перенаправления на page.html.

Этот поток имеет решение, которое почти работает: Как скрыть расширение .html с помощью Apache mod_rewrite

Но при использовании /page/ он учитывает косую черту в качестве индикатора папки, и поэтому все ссылки и относительные пути в этом HTML-файле идут, скажем, /page/style.css вместо /style.css.

Вот мой текущий .htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]

Как мне это исправить?

Ответы [ 2 ]

0 голосов
/ 08 июля 2016

Вам на самом деле не нужен mod_rewrite для этого, вместо этого вы можете использовать согласование содержимого с многовидовым просмотром .

Multiviews можно включить, добавив в файл конфигурации или htaccess следующее:

Options +MultiViews

При включенной опции example.com/filename разрешит example.com/filename.html (без .html в адресной строке).

0 голосов
/ 13 января 2012

Я бы добавил глобальную переменную $ URL_ROOT к вашему php или другому языку и сделал все относительные ссылки на абсолютные ссылки с ним ...

...