mod_rewriite(ЧПУ)

Discussion in 'PHP' started by AkyHa_MaTaTa, 21 May 2008.

  1. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    558
    Likes Received:
    306
    Reputations:
    27
    Доброго всем времени суток, у мну вот такая трабл, для скрытия реальных путей всегда использовал вот такой прием(.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 транслячией адресов(чпу), и все у них работает, я не вкурю почему не пашет у меня,
    за помошь буду очень признателен.
     
    #1 AkyHa_MaTaTa, 21 May 2008
    Last edited: 21 May 2008
  2. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Чувак, так ведь '.' в регулярках имеет смысл как "любой символ", и не допустимо использовать её в регулярках без экранирования... Может проблема в этом? Попробуй вместо точи - '\.'. То есть слешем заэкранируй её...
     
  3. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    А что если добавить вначале аштекссесса
    а не ппросто
    поидее не поможет, но было у меня похожее...


    Если передаеться хоть 1 параметр то можно
    а в скрипт добавить модуль предзагрузки и разбирать этот параметр...
    хотя это похоже на изврат

    попробуй просто работпет ли модреврайт, что-то типа
    Причем поставь первым...
    Можно попробывать переименовать аштекссессы дле и джумлы и еще раз проверить

    пс у меня работает и без последнего (/?)+
     
    #3 Naydav, 21 May 2008
    Last edited: 21 May 2008
  4. swt1

    swt1 Elder - Старейшина

    Joined:
    16 Feb 2008
    Messages:
    306
    Likes Received:
    78
    Reputations:
    21
    пример:
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteEngine On
    RewriteRule ^models([A-Za-z0-9^/]+)/([A-Za-z0-9_^/]+)/$ db/selectcar.php?ID_Marke=$1 [L]
     
  5. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Code:
    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]