mod rewrite (двойной слэш)

  • Автор темы Автор темы [SDem]
  • Дата начала Дата начала

[SDem]

Новичок
mod rewrite (двойной слэш)

Добрый день всем.
Был у меня заботан чпу, но не с применением mod rewrite а на банальном Error docement.
Соответственно это не позволяло использовать пост в формах.Решил попробовать mod rewrite. Откопал недавний пост , обнаружил ам конструкцию вида:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^$ index.php [L,QSA]
RewriteRule ^([^.]+[^/])$ $1/ [R=301,L,QSA]
RewriteRule ^([^.]+)/$ index.php [L,QSA]
Вобщем попробовал и всё заработало, только вот если набирать в строке запроса адрес вида
http://site/bla bla то оне перестраивается на http://site//bla bla/, а надо http://site/bla bla/
Потратил всё утро на разбирательства в этом вопросе, но что то ниасилил.. Может кто нить подсказать как мне избавиться от двойных слешей??? Они мне не упёрлись тут :-)

-~{}~ 31.07.06 09:17:

Народ ну неужели никто не знает?
Помогите плиз кто нить разобраться.Я эти регулярки сам никак разрулить не могу,хотя перечитал уже всё что можно.
 
Откопал недавний пост , обнаружил ам конструкцию вида:
а версия с "попробовать написать самому с нуля" против "исправить хз что хз чьё" тебя не устроит?
 
Автор оригинала: zerkms
а версия с "попробовать написать самому с нуля" против "исправить хз что хз чьё" тебя не устроит?
Слушай, а ты думаешь я не пробовал?
Я уже обчитался и обпробовался.Всё что получается-100% загрузка проца...
А чужое взял потому как надо было с чего то начать. Я с этим первый раз связался. Если знаешь как это побороть то буду благодарен если ткнёшь носом.
 
Я знаю как побороть и готов тыкать кого-надо носом :)
А побороть можно так: очисти всё и добавляй по строчке до тех пор пока проц не загружается на 100%. Как только загрузится ты будешь знать в какой именно строке проблема. Затем устраняешь проблему и але-оп. Всё работает.
 
так я знаю в какой строке проблема
RewriteRule ^([^.]+[^/])$ $1/ [R=301,L,QSA]
Вот перегнал всё в пхп
$url='http://site/program';
preg_match("/([^\.]+[^\/])/",$url,$a);
в итоге $a содержит
Array
(
[0] => http://site/program
[1] => http://site/program
)
То есть $1 содержит "http://site/program" к которой справа добавляется "/" , но я хоть убейте не пойму почему у меня в результате получается "http://site//program/"
 
Я проверил. У меня всё ок. Причём работает и так:
PHP:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /

RewriteRule ^([^.]+[^/])$ $1/ [R=301,L,QSA] 
RewriteRule ^([^.]+)/$ index.php [L,QSA]

-~{}~ 01.08.06 23:36:

http://localhost/program ==> http://localhost/program/
 
Млин у меня не работает.
Может это от каких нить настроек в httpd.conf ещё зависит?
На мастерхосте тоже так работает всё.
 
Сверху