Помогите с mod_rewrite

12
ciber
На сайте с 04.01.2008
Offline
215
#11
b43:
Всем доброго дня
Вопрос таков:
Какое правило надо прописать в .htaccess что бы при вводе url
http://site.ru/?kontakt
выдавалась страница
http://site.ru/?page=kontakt


вместо "kontakt" может быть любая страница!.

Заранее благодарен.

странная задача. Решите ее на уровне скрипта, незачем перегружать и без того тормозной апач

root
На сайте с 04.07.2006
Offline
196
#12

делается все очень просто:

запрос URL: http://site.ru/?kontakt

в теле index.php пишем:

$page=$_SERVER['QUERY_STRING'];

(за код спасибо одному из админов Li)

------

вообще, логичней сделать так, как писали в прошлых постах...

или http://site.ru/p/kontakt/

RewriteRule ^p/([^/]+)/?$ index.php?page=$1 [L]

b43
На сайте с 08.08.2008
Offline
11
b43
#13

Всем спасибо я сделал по-другому

на странице http://site.ru/kontakt.html

выдаётся http://site.ru/?page=kontakt

причём адреса с "?" вообще пользователю не видно.

вот как это делается:

RewriteRule ^([^/]*)\.html$ /?page=$1 [L]

и ещё может кому интересно вот код преобразования

http://www.site.ru в http://site.ru и

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

защита так сказать от дублирования страниц.

DirectoryIndex index.php

# Запуск mod_rewrite
RewriteEngine on
RewriteBase /
#Options +FollowSymlinks

#перенаправление с www.site.ru на site.ru
RewriteCond %{HTTP_HOST} ^www.site$
RewriteRule ^(.*)$ http://site/$1 [R=301,L]

RewriteRule ^index.php$ / [L,R=301]

Всем спасибо :)

12

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