У меня есть небольшое количество статических сайтов, где я просто хочу скрыть .html расширение:
/foo
выбирает статический файл /foo.html
/foo
Клиент может тогда отослать закладки в стиле mydomain.com/foo
вместо mydomain.com/foo.html
.
Это звучит очень простым, и я использовал mod_rewrite
счастливо прежде (говорят с WordPress или для перенаправлений), но это оказывается намного более твердым взломать это, я думал. Возможно, я пропускаю что-то действительно очевидное, но я не могу найти решение нигде, и я был во всем этом днем!
Мы выполняем наш собственный сервер, таким образом, это может пойти везде, где лучшее место.
Приложение
Решение, проверенное ниже хорошо работавшего. Тогда после выполнения сайта некоторое время я заметил две проблемы:
все страницы начали казаться нестилизованными. Я перезагрузил, очистил кэш, и т.д., но все еще без стилей. Я испытал эти затруднения прежде и не могу определить местоположение источника.
Существует каталог И файл HTML, названный 'галереей', таким образом, / ссылка галереи показывает список каталогов вместо файла HTML. Я должен быть в состоянии отсортировать тот, но дальнейшие подсказки приветствуют:-),
Попробуйте это правило:
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]
При добавлении .html
будут перезаписаны все запросы, которые могут быть привязаны к существующему файлу.
Вот пример, который позволяет нам хранить файл на диске как:
foo.html.php
Но в браузере, обратитесь к нему как к
foo.html
Чтобы это работало для вас, я думаю, вам просто нужно будет немного изменить его, чтобы он соответствовал вашим существующим запросам, и проверить на месте ли реальный файл с помощью . расширение html
.
# These are so we do not need the .php extension
RewriteCond %{REQUEST_FILENAME} (\.xul|\.html|\.xhtml|\.xml)$',
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME}.php -f',
RewriteRule ^(.*)$ $1.php',