PHP и с чем его едят....

Dre.hz

Active Member
PHP собран без поддердки mbsitring:

Пишите админу хостинга, пусть включает.
 

[fly]

Sweet orange
Подскажите, хочу сделать простую поддержку ЧПУ через .htaccess. Прописываю внутри следующий код:
RewriteEngine on
RewriteRule ^press/([0-9]+)/? press.php?idPaper=$1 [L]
Ссылка вида:
Модуль mod_rewrite включен.

Вопрос: почему не работает?
 

[fly]

Sweet orange
Все равно никаких изменений. Может надо еще что-то включать? Уже и апач перегружал и ничего.
 

Dre.hz

Active Member
Все равно никаких изменений. Может надо еще что-то включать? Уже и апач перегружал и ничего.
Ну тогда шаг за шагом.
Сначала протестируй, работает ли mod_rewrite вообще.
Затем постепенно строй то что требуется, постепенно усложняя, пока не достигнешь того, что требуется...
 

[fly]

Sweet orange
Вот не могу понять.
RewriteRule page1.html page2.html
Вот так подменяет page1 на page2, почему тогда здесь:
RewriteRule ^press/([0-9]+)/? press.php?idPaper=$1 [L]
Подменяемые данные мы пишем в первой части, а не во второй. Как по аналогии с первым примером, было бы правильнее написать что-то вроде:
RewriteRule ^/press.php?idPaper=$1/? press/([0-9]+) [L]
Каков его принцип работы?
 

[fly]

Sweet orange
В общем работает. Но только теперь возникло еще больше вопросов... Сама по себе ссылка работает, но только когда ввожу ее принудительно в строку. А как же сделать чтобы ссылку автоматически подменяло этим адресом - ? Или это мне надо все ссылки переписывать с press.php на press/ ?
 
Останнє редагування:

Dre.hz

Active Member
Нужно
1. Либо переписать все ссылки в коде (руками и автоматически)
2. Либо редиректить с некрасивой на красивую (через PHP или тот же mod_rewrite), что в общем следует делать.

Первое решение правильное. Советую почитать мануал по mod_rewrite:

Еще более правильным было бы переписывать в .htaccess вообще все урлы на /index.php и дальше уже в PHP-скрипте заниматься роутингом (разбором урла и выполнением нужного кода в зависимости от результата).
 
Зверху