Здравствуйте, уважаемые частники форума. Вопрос следующий. Решил я изменить адреса своего сайта на ЧПУ. Для этого в файле .htaccess прописал. Код (Text): RewriteRule ^art/([0-9]+)/? articles.php?artid=$1 [L] т.е. при обращении site.ru/art/1 это будет идентично site.ru/articles?artid=1 Все бы хорошо, но теперь сервер понимает art как подкаталог и не подгружается файл стиля и прочие скрипты, ладно можно будет и абсолютный путь прописать, но как быть с изображениями, не прописывать же также везде абсолютный путь, да все ссылки когда имеющие вид /index.php приобретают вид /art//index.php Как решал? Создал отдельный файл, где прописал константу: PHP: define( 'SITE_ROOT', $_SERVER['SERVER_NAME'] ); Его я include и затем в исполняемом файле прописал $dir = (dirname(SITE_ROOT)); И при подключении вот так: HTML: <link rel="stylesheet" type ="text/css" href="<?php echo $dir .'/style.css'; ?>"> Но все равно не работает при обращении site.ru/art/1 Подскажите, пожалуйста, в чем я не прав и в каком направлении действовать дальше?
HTML: <base href="http://<?=$_SERVER['HTTP_HOST'];?>"> <link rel="stylesheet" type ="text/css" href="/style.css">
Можно тогда еще вопрос в тему? Раз уже сделали нормальный вид адресов, как тогда прописать грамотно переадресацию для страниц типа site.ru/articles?artid=1 в site.ru/art/1
Дело в том что два адреса, по которым открывается сайт, будут неравноправны. Все ссылки в интернете будут по-прежнему вести на старый адрес, поисковые машины будут показывать старый адрес и для появления в индесе может потребоваться много времени, да и «показатели качества» сайта, такие как PR будут принадлежать старому адресу, а у нового они будут нулевыми. Т.е. поисковику надо указать, что страница с адресом http://www.site.ru/articles.php?type=dir&id=number имеет теперь адрес http://www.site.ru/dir/number/ и старый адрес исключить так, чтобы страница с новым адресом появилась в выдаче на том же месте, где и старая. Конечно, это надо было сделать раньше (до индексирования поисковиком), но.... P.S.: Извините, если изложил не понятным языком.
Да, правильно, но как составить правило в .htaccess? RewriteRule ^старые адреса$ новые адреса [R=301,L]