PDA

Просмотр полной версии : mod_rewriite(ЧПУ)


AkyHa_MaTaTa
21.05.2008, 18:40
Доброго всем времени суток, у мну вот такая трабл, для скрытия реальных путей всегда использовал вот такой прием(.htacces):
RewriteEngine On
RewriteRule ^models/([0-9]+).html(/?)+$ /db/selectcar.php?ID_Marke=$1 [L]
RewriteRule ^carviev/([0-9]{1,10})-([0-9]{1,10}).html(/?)+$ /db/selectcar.php?ID_Marke=$1&ID=$2 [L]
RewriteRule ^cars.html(/?)+$ /db/index.html [L]

и естьствено если включен мод реврайт все оки было, а ша выдает асес денайдет, или нот фаунд, хотя на други хостах работало все ок, как я уже не меня регулярку, до одного место все, подскажике как мне правильнее сделать, есть скрипт selectcar.php, ему передаеться 1 значения(ID_Marke), и второй selectcar.php (ему передаться 2 значения ID_Marke,ID), как бы правильнее сформировать запрос, подскажите, причем на том же хосте стоит dle, joomla c транслячией адресов(чпу), и все у них работает, я не вкурю почему не пашет у меня,
за помошь буду очень признателен.

groundhog
21.05.2008, 19:05
Чувак, так ведь '.' в регулярках имеет смысл как "любой символ", и не допустимо использовать её в регулярках без экранирования... Может проблема в этом? Попробуй вместо точи - '\.'. То есть слешем заэкранируй её...

Naydav
21.05.2008, 19:07
А что если добавить вначале аштекссесса
RewriteEngine on
Options +FollowSymlinks
RewriteBase /

а не ппросто
RewriteEngine on
поидее не поможет, но было у меня похожее...


Если передаеться хоть 1 параметр то можно
RewriteRule ^([a-z0-9\_\/]+)$ index.php?params=$1 [QSA]
а в скрипт добавить модуль предзагрузки и разбирать этот параметр...
$this->ls = preg_split("/\/+/", $_GET['params']);
хотя это похоже на изврат

попробуй просто работпет ли модреврайт, что-то типа
RewriteRule ^test$ index.php?id=test [L]
echo $_GET['id'];
Причем поставь первым...
Можно попробывать переименовать аштекссессы дле и джумлы и еще раз проверить

пс у меня работает и без последнего (/?)+

swt1
21.05.2008, 19:16
пример:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteEngine On
RewriteRule ^models([A-Za-z0-9^/]+)/([A-Za-z0-9_^/]+)/$ db/selectcar.php?ID_Marke=$1 [L]

Isis
21.05.2008, 19:18
RewriteEngine On
RewriteRule ^models/([0-9]+)\.html+$ /db/selectcar.php?ID_Marke=$1 [L]
RewriteRule ^carviev/([0-9]{1,10})-([0-9]{1,10})\.html+$ /db/selectcar.php?ID_Marke=$1&ID=$2 [L]
RewriteRule ^cars.html+$ /db/index.html [L]