Странное поведение Apache при попытке отобразить URL-адреса без расширения HTML - PullRequest
3 голосов
/ 28 февраля 2009

У меня есть URL, который легко доступен, когда вы запрашиваете его как:

    http://example.com/2005/01/example.html

    or

    http://example.com/2005/01/example

(Я на самом деле не знаю, почему он работает без расширения. Вместо этого он должен возвращать обычную ошибку 404.)

Однако, когда я пытаюсь получить доступ к следующему URL:

    http://example.com/2005/01/example/
    (note the trailing slash)

Я получаю ошибку 404 Не найдено, но запрошенный URL-адрес напечатан как:

    http://example.com/2005/01/example.html/

Итак, похоже, что ".html" часть была автоматически добавлена ​​apache.

У меня вопрос: как отключить это поведение? Мне нужно это сделать, потому что я хочу добавить правила mod_rewrite, чтобы скрыть расширение html, чтобы я мог получить доступ к этому URL как:

    http://example.com/2005/01/example/

У меня apache 2.2.9 в Ubuntu 8.10.

Спасибо!

Ответы [ 2 ]

6 голосов
/ 28 февраля 2009

MultiViews может вызвать это поведение. Попробуйте отключить его:

Options -MultiViews
0 голосов
/ 28 февраля 2009

Является ли example.html фактическим файлом, который находится в пути к каталогу 2005/01? Кажется, что mod_rewrite уже активен. Если вы используете блог или систему управления контентом на своем сервере, то, вероятно, она уже работает с вашим URL.

...