ЧПУ в массы!

Статус
В этой теме нельзя размещать новые ответы.
parempi написал(а):
Slayter
я добавил в корень .htaccess:

RewriteEngine on
RewriteBase /
RewriteRule ^index/([0-9]+).html$ index.php?id=$1


Но адрес остался index.php?id=1

mod_rewrite у хостера установлен.
В чем проблема? Я что-то накосячил?
Если не сложно, опиши и как перевести кириллицу в латиницу. Тоже не могу разобраться. Просто знаний пока не хватает. =(
Нужно для движка newsphp 2006
адреса нужно самому в скрипте изменять
 
Все выше описанное понятно и опробовано мной. вопрос в том как сделать правило, чтобы все/любые литеральные запросы, типа /news,/about и тд, вызывали файл/скрипт с тем же именем и нужным расширением(/news.htm,/about.html). не писать же под каждую страницу свое правило.:confused:

СПАСИБО.
 
tommy написал(а):
адреса нужно самому в скрипте изменять
Да, уже разобрался на примере модификации для своего форума, которая делает ссылки удобными для поисковиков - forum/topic99.html и т.п.
И теперь не понимаю, зачем и для кого эта статья была написана. .htaccess как раз самое элементарное
 
PHP:
RewriteRule ^/([a-zA-Z]+)$ $1.html
может так (я в регулярных выражениях не силен)
 
PHP:
RewriteRule ^/([A-Za-z]{2,4})$ $1.html
где 2 минимальное кол-во символов а 4 максимальное - иначе на 404 уйдет автоматом :)
 
Slayter написал(а):
PHP:
RewriteRule ^/([A-Za-z]{2,4})$ $1.html
где 2 минимальное кол-во символов а 4 максимальное - иначе на 404 уйдет автоматом :)
Зачем ограничение в 4 символа,что имя файла не может быть длиннее?
спасибо tommy, натолкнул на мое ошибку.
Заработало так:
PHP:
RewriteRule ^([a-zA-Z]+)$ $1.php
"плюсик" не там поставил
 
BZone написал(а):
Зачем ограничение в 4 символа,что имя файла не может быть длиннее?
спасибо tommy, натолкнул на мое ошибку.
Заработало так:
PHP:
RewriteRule ^([a-zA-Z]+)$ $1.php
"плюсик" не там поставил
ну если хочешь "тупо" сделать "one or more" - то пожалуйста. а так - лучше лишний презерватив одеть для подстраховки проекта.
вы вообще хоть понимаете что пишете в регулярках и что плюсик означает?
если нет, то не трогай.
 
Slayter написал(а):
вы вообще хоть понимаете что пишете в регулярках и что плюсик означает?
если нет, то не трогай.
Я прекрасно понимаю,что означает плюсик. Не претендую на звание эксперта,но если мое решение некорректно,то будь добр комментировать детальней.
Чем это небезапастно:
Slayter написал(а):
ну если хочешь "тупо" сделать "one or more" - то пожалуйста. а так - лучше лишний презерватив одеть для подстраховки проекта.
спасибо
 
BZone написал(а):
Я прекрасно понимаю,что означает плюсик. Не претендую на звание эксперта,но если мое решение некорректно,то будь добр комментировать детальней.
Чем это небезапастно:
спасибо
лишня фильтровка вводимых конечным пользователем данных никогда и никому не шла во вред.
лучше заранее определить какой-либо параметр, чем потом сравнивать strlen с чем-либо(по-крайней мере я так делаю, чтобы не дать пользователю написать нечто в потенциально уязвимый параметр. вообще средствами одного mode_rewrite можно натянуть на проект презерватив защищающий от SQL инъекций - тут даже где-то ссылка была на статью об этом).
 
Slayter написал(а):
лишня фильтровка вводимых конечным пользователем данных никогда и никому не шла во вред.
лучше заранее определить какой-либо параметр, чем потом сравнивать strlen с чем-либо(по-крайней мере я так делаю, чтобы не дать пользователю написать нечто в потенциально уязвимый параметр. вообще средствами одного mode_rewrite можно натянуть на проект презерватив защищающий от SQL инъекций - тут даже где-то ссылка была на статью об этом).
Согласен с тобой. Сам этого принципа придерживаюсь. Просто мне не до конца понятно
,как
PHP:
RewriteRule ^([a-zA-Z]+)$ $1.php
может быть потенциально опастно. ведь смысл в вызове скрипта с тем же именем,что и в чпу. не будет скрипта ,не будет документа
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху