#apache #htaccess #php
Скажу сразу, что я почти в этом не разбираюсь. Необходимо сделать ЧПУ. Урлы типа http://domein.com/model.php?id=(название латиницей) нужно перевести в урлы типа http://domein.com/model/(название латиницей). В файле .htaccess выглядит так полностью: php_flag register_globals on ErrorDocument 404 /error.html RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} ^domein.com RewriteRule (.*) http://www.domein.com /$1 [R=301,L] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://domein.com / [R=301,L] RewriteRule ^ model/(.+)$ model.php?id =$1 [R] И вот если ставить ключ [R] в последней строке, то редирект выполняется, т.е. в поле адреса забиваешь http://domein.com/model/a страница находиться, но при этом урл меняется на прежний http://domein.com/model.php?id=a. И когда из http://domein.com/search.php идет обращение к http://domein.com/model.php?id=a, урл сам не меняется на http://domein.com/model/a, хоть ты тресни. С ключами отличными от [R]: либо [L], либо [QSA], либо их комбинации или же совсем без ключа; страница http://domein.com/model/a находиться и урл фиксируется, так что пользователь может его видеть. НО как и в случае с [R], урл сам не меняется на http://domein.com/model/a. И самое страшное что не грузятся картинки и невозможно перейти на другие ветки сайта, даже если менять img src="images/img.jpg" на img src=" domein.com/images/img.jpg" в итоге картинка имеет путь http://domein.com/model/domein.com/images/img.jpg, также и все страницы имеют ссылки вида http://domein.com/model/index.php вместо http://domein.com/index.php при обращении из изменённого урла к index.php. Наверно немного запутанно, но смысл думаю понятен. Задача сделать рабочими ЧПУ, так чтобы новые урлы формировались из уровня выше и при этом сохранялись в поле адреса. И чтобы нормально грузились все картинки и пути были соответственно рабочими. Повторюсь, я профан в этом деле и делаю только первые шаги в познании PHP. Так что просьба громко не смеяться. Буду благодарен за любой ответ.
Ответы
Ответ 1
RewriteEngine on RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ /index.php?route=$1 [L,QSA] Ну а в скрипте уже разгребайте $_REQUEST['route']Ответ 2
RewriteRule ^model/([A-Za-z]+)$ model.php?id=$1 [L] Чем не устроит такой редирект? Соответственно для циферок: RewriteRule ^model/([0-9]+)$ model.php?id=$1 [L] Успехов!
Комментариев нет:
Отправить комментарий