Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   mod_rewriite(ЧПУ) (https://forum.antichat.xyz/showthread.php?t=71056)

AkyHa_MaTaTa 21.05.2008 18:40

mod_rewriite(ЧПУ)
 
Доброго всем времени суток, у мну вот такая трабл, для скрытия реальных путей всегда использовал вот такой прием(.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]



Время: 19:45