ЧПУ и .htaccess

Join666
На сайте с 04.12.2008
Offline
25
952

Уважаемые форумчане!У меня возникла проблема!Мне надо настроить ЧПУ на самописном движке!

Написал в файле .htaccess следующее

AddHandler application/x-httpd-php .php .htm .html
RewriteEngine on
DirectoryIndex index.php
RewriteBase /
RewriteRule ^vacan(\d+).html/? index.php?vac=$1
RewriteRule ^rezum(\d+).html/? index.php?rezum=$1
RewriteRule ^dobvac.html/? index.php?p=dobvac
RewriteRule ^dobrez.html/? index.php?p=dobrez
RewriteRule ^obrsvz.html/? index.php?p=obrsvz
RewriteRule ^vacan/page/(\d+).html/? index.php?p=smotrvac&page=$1
RewriteRule ^rezum/page/(\d+).html/? index.php?p=smotrrez&page=$1
RewriteRule ^rub(\d+).html/? index.php?rub=$1
RewriteRule ^news(\d+).html/? index.php?news=$1

Все хорошо!Но по переходу на ссылку site/rezum/page/1.html, то на всех ссылках добавиляется site/rezum/page/!Как с этим можно бороться?ЗАранее спасибо.

Лучший сайт для поиска работы (http://www.rabcenter.ru)! Пишу скрипты (/ru/forum/378488)!
sirota77
На сайте с 08.09.2008
Offline
161
#1

ставьте [L] в конце правила если дальнейшая обработка url не нужна

alexspb
На сайте с 14.11.2005
Offline
187
#2

Вместо строк:

RewriteRule ^dobvac.html/? index.php?p=dobvac

RewriteRule ^dobrez.html/? index.php?p=dobrez

RewriteRule ^obrsvz.html/? index.php?p=obrsvz

можно:

RewriteRule ^(dobvac|dobrez|obrsvz).html/? index.php?p=$1

вместо:

RewriteRule ^rezum(\d+).html/? index.php?rezum=$1

RewriteRule ^rub(\d+).html/? index.php?rub=$1

RewriteRule ^news(\d+).html/? index.php?news=$1

можно:

RewriteRule ^(rub|news|rezum)(\d+).html/? index.php?$1=$2

А если стандартизировать RewriteRule ^vacan(\d+).html/? index.php?vac=$1 то можно туда же добавить

оставшиеся строки

RewriteRule ^vacan/page/(\d+).html/? index.php?p=smotrvac&page=$1

RewriteRule ^rezum/page/(\d+).html/? index.php?p=smotrrez&page=$1

тожно можно было бы стандартизировать

И флаг [L] не помешает, это верно заметили

RewriteRule ^(dobvac|dobrez|obrsvz).html/? index.php?p=$1 [L]

RewriteRule ^(rub|news|rezum)(\d+).html/? index.php?$1=$2 [L]

RewriteRule ^vacan(\d+).html/? index.php?vac=$1 [L]

RewriteRule ^vacan/page/(\d+).html/? index.php?p=smotrvac&page=$1 [L]

RewriteRule ^rezum/page/(\d+).html/? index.php?p=smotrrez&page=$1 [L]

уже легче читать код

а вообще термин ЧПУ вводит в заблужение, для оптимизатора смысл в другом - сунуть в урл ключевик, а у вас этого нет...

людям все-равно

index.php?news=156

или

news156.html

bmw.html - это уже интереснее )))

Join666
На сайте с 04.12.2008
Offline
25
#3

alexspb, хмм.....!Спасибо, обязательно учту это!Хотя по большому счету vacncia и rezume тоже ключевики для сайта про работу :)!Написал следуещее


AddHandler application/x-httpd-php .php .htm .html
RewriteEngine on
DirectoryIndex index.php
RewriteBase /
RewriteRule ^(dobvac|dobrez|obrsvz).html/? index.php?p=$1 [L]
RewriteRule ^(rub|news|rezum|vacan)(\d+).html/? index.php?$1=$2 [L]
RewriteRule ^vacan/page/(\d+).html/? index.php?p=smotrvac&page=$1 [L]
RewriteRule ^rezum/page/(\d+).html/? index.php?p=smotrrez&page=$1 [L]

Проблема осталась!

P
На сайте с 10.03.2008
Offline
168
#4

Поставь перед всеми ссылками на всех страницах "/". htaccess тут не при чем.

Join666
На сайте с 04.12.2008
Offline
25
#5

pistol, Огромное спасибо!Помагло!

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