[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите подогнать htaccess
r3al
Привет, пожалуйста, кому не сложно, напишите как правильно должно это выглядеть, я уже 2й день трачу на изучение реврайт лога и попытку убить 500 ошибку..

все варианты сайта свести к http://site.ru/index.html, т.е. если запрашивается

http://www.site.ru/
http://site.ru/
http://www.site.ru/index.php
http://site.ru/index.php

все должно попасть на

http://site.ru/index.html

файлы, имеющие расширения jpeg, jpg, png, gif не должны быть затронуты

конец каждого url завершаться .html и если его поставить некуда (но при этом это поддиректория), резать последний слеш, если не поддериктория то на index.html направлять, т.е

http://site.ru/index
http://site.ru/index/
http://site.ru/index.php/

ведут на

http://site.ru/index.html

а

http://site.ru/index/blabla/
http://site.ru/index/blabla

ведут на

http://site.ru/index/blabla.html

и в итоге весь запрос должен уйти на роут файл index.php в том виде котором пришел, т.е я получу в $_SERVER['QUERY_STRING'] при запросе

http://site.ru/member/activate.html?key=1a2b3c

строку

member/activate.html?key=1a2b3c
r3al
попробую апнуть, глядишь помогут.. (:
killer8080
Цитата (r3al @ 12.05.2013 - 02:47)
все варианты сайта свести к http://site.ru/index.html, т.е. если запрашивается

http://www.site.ru/
http://site.ru/
http://www.site.ru/index.php
http://site.ru/index.php

все должно попасть на

http://site.ru/index.html

так понимаю, нужен внешний редирект, для канонизации ссылок
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule (.*) http://%1/$1 [R=301,L,QSA]

RewriteRule ^$ http://%{HTTP_HOST}/index.html [R=301,L,QSA]

RewriteRule ^index.php$ http://%{HTTP_HOST}/index.html [R=301,L,QSA]

Цитата (r3al @ 12.05.2013 - 02:47)
и в итоге весь запрос должен уйти на роут файл index.php в том виде котором пришел, т.е я получу в $_SERVER['QUERY_STRING'] при запросе

а почему бы просто не направлять все несуществующие запросы на index.php, как обычно?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php?route=$0 [L,QSA]
r3al
все ушло в редирект
echo $_SERVER['REQUEST_URI'];

/main.html?route=main.html&route=main.html&route=main.html&route=main.html&route=mai n.html&route=main.html&route=main.html&route=main.html&route=main.html&route=main .html&route=main.html&route=main.html&route=main.html&route=main.html&route=main. html&route=main.html&route=main.html&route=main.html&route=main.html
killer8080
Цитата (r3al @ 22.05.2013 - 13:13)
все ушло в редирект

покажи свой .htaccess
r3al
твой код, только слово index.html замени на main.html и будет мой .htaccess
r3al
RewriteEngine On
RedirectMatch 301 ^/$ /main.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
ErrorDocument 404 /404.html
RewriteRule ^(.*)$ index.php [QSA,L]

вот это как выяснилось по логам полное гавно.. не понимал, почему 2 коннекта к бд стартуют, вроде всего 1 раз написано обращение..
killer8080
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule (.*) http://%1/$1 [R=301,L,QSA]

RewriteRule ^$ http://%{HTTP_HOST}/main.html [R=301,L,QSA]

RewriteCond %{THE_REQUEST} ^[A-Z]+\s/index.php
RewriteRule .* http://%{HTTP_HOST}/main.html [R=301,L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php?route=$0 [L,QSA]
r3al
теперь не циклится, спасибо. но уходит куда то в подзапрос.. по логам мускула:
130523 13:38:45	    9 Connect	root@127.0.0.1 on 
9 Init DB games
9 Query SET NAMES utf8
9 Query SELECT 1 FROM `members` WHERE `id` = '1' AND `session` = 'e2e01dfbfa691bb33339ccfa62c6aa5d'
9 Quit
10 Connect root@127.0.0.1 on
10 Init DB games
10 Query SET NAMES utf8
10 Query SELECT 1 FROM `members` WHERE `id` = '0' AND `session` = '0'
10 Quit
но коннект то один прописан и это точно.. бля магия какая то! теперь не уходит..
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.