Перезапись htaccess не работает должным образом на локальном хосте

Сейчас я реструктурирую сайт и тестирую его на локальном хосте (xampp).

В корневом каталоге было несколько файлов .htm, которые были преобразованы в .php. Однако я хотел бы сохранить расширение .htm по причинам SEO. Итак, я создал файл .htaccess с таким содержимым:

Options +FollowSymlinks
RewriteEngine On
RewriteRule ^(.*)\.php$ $1.htm [L]

Но когда я пытаюсь получить доступ к такой странице, чтобы протестировать переписывание:
http://localhost/sitename/anything.php

Я всегда получаю
http://localhost/C:/xampp/htdocs/sitename/anything.htm

что, очевидно, выдает ошибку 403.

Я пытался изменить параметры .htaccess, но безуспешно.
В Apache включен модуль перезаписи, так что это не так.

Я что-то пропустил?


person Yaelede    schedule 28.12.2011    source источник
comment
Просто комментарий. Расширение никак не повлияет на SEO вашего сайта. Основная причина, по которой вы должны переписать мод для SEO, заключается в том, что у вас длинные параметризованные URL-адреса или если у вас ранее были html-страницы, и вы делаете контент динамическим, но не хотите проходить весь процесс 301 перенаправления всего вашего сайта.   -  person Raul Marengo    schedule 28.12.2011


Ответы (2)


Попробуйте добавить директиву RewriteBase, т.е.

Options +FollowSymlinks
RewriteEngine On
RewriteBase /

RewriteRule ^(.*)\.php$ $1.htm [L]
person Ulrich Palha    schedule 28.12.2011

Попробуйте перенаправить, используя запрошенный URI:

RewriteEngine On
RewriteRule ^(.*)\.php$ %{REQUEST_URI}.htm [R=301,L]

Я протестировал его, и он добавил «.htm» ко всем моим URI php test.php -> test.php.htm

Здесь не нужны обратные ссылки.

person polyphemus11    schedule 12.01.2016