Как автоматом поменять ссылки без расширения на ".html" (htaccess)

r0b0t
На сайте с 12.04.2009
Offline
112
5987

Приветствую.

Проблема интересная, решение так и не нашел. Есть сайт на пхп инклудах, имеет более 1500 страниц. Почти на всех страницах отсутствует необходимое расширение .html в ссылках , хотя на сервере расширение у файлов есть, и из-за этого, почти все ссылки, если по ним переходить ведут к ошибке 404, если вручную добавить расширение .html то страница открывается. Проще говоря перелинковано без расширения, вручную править ссылки на страницах, это адская работа, ее не проделать. Может кто подскажет, как решить эту задачу посредством htaccess, буду благодарен.

Например:

ссылка на странице указана так site.ru/index , и при переходе по ней будет ошибка, как ее заменить на правильную site.ru/index.html, т.е. все ссылкам на страницах прописать расширение или как-то это сэмулировать при переходе.

Плачу % своим рефам в SAPE (http://www.sape.ru/r.PlKptRzsKl.php) | 5000р (!) за 1000 кликов (http://ladycash.ru/?ref=11936) Я смог завоевать империю, но не смог завоевать себя (c) Наполеон.
D
На сайте с 09.07.2009
Offline
79
#1

RedirectMatch (.*)$ http://site.ru$1.html

как-то так попробуйте.

siv1987
На сайте с 02.04.2009
Offline
427
#2

Посредством htaccess можно двумя способами: редиректом - ссылки без префикса будут редиректиться на .html, но урлы в коде должны быть правильными иначе весь сайт будет через редиректы.

второй вариант - реврайты, запросы без html на сервер отправляются с префиксом.

RewriteEngine On

RewriteCond %{REQUEST_URI} !/$

RewriteCond %{REQUEST_FILENAME}.html -f

RewriteRule ^([^.]+)$ /$1.html [L]

r0b0t
На сайте с 12.04.2009
Offline
112
#3
siv1987:
Посредством htaccess можно двумя способами: редиректом - ссылки без префикса будут редиректиться на .html, но урлы в коде должны быть правильными иначе весь сайт будет через редиректы.
второй вариант - реврайты, запросы без html на сервер отправляются с префиксом.

RewriteEngine On
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^([^.]+)$ /$1.html [L]

Спасибо большое siv1987, ваше второе решение помогло решить проблему.

P.S. в качестве плюшек скинул 7-значный номер icq(inviz) подарочный с паролем вам в лс.:)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий