Настройка mod_rewrite на локальном компьютере так же как и на хостинге

Mikelangelo

Новичок
Настройка mod_rewrite на локальном компьютере так же как и на хостинге

Добрый день.Возникла следующая проблема:

Есть сайт, который вполне нормально работает на внешнем сервере, но мне нужно его перенести на локальную машину,чтобы можно было по-человечески вносить изменения и обновлять на внешний.В .htaccess понаписано много реврайтов,которые работают на внешнем серваке,но не хотят работать локально.

Как я понял, локально сайт не хочет работать именно из-за реврайтов.

Стал сравнивать через настройки phpinfo. Например, на хостинге в Phpinfo есть строчка с подключенными модулями
(Loaded Modules) и в ней присутствует mod_rewrite, в локальном Phpinfo строчка со списком подключенных модулей вообще отстутсвует,но mod_rewrite точно подключен,во-1 самые простые реврайты выполняются и локально на денвере,а во-2 в httpd.conf прописано LoadModule rewrite_module modules/mod_rewrite.so,то есть mod_rewrite подключен,но,видимо,как-то иначе....

И вот мне нужно локально настроить mod_rewrite так же,как и на внешнем хостинге,а я не знаю с какой стороны подходить...полдня сравнивал phpinfo там и там и в httpd.conf ковырялся,но толку это не дало...

Заранее спасибо за помощь
 

Mikelangelo

Новичок
Я полагаю,сайт не хочет работать из-за реврайтов потому что:

1) Ради интереса сделал echo $_GET['имя переменной']. Протестил код на внешнем серевере и локально. На внешнем сервере выводится значение переменной, локально переменная то ли пустая, то ли ее вообще не существует.

2)Локально некорректно работает именно переход по ссылке с адресом,получившимся в результате реврайтов.

-~{}~ 22.03.07 12:53:

phprus

В логи вообще никакие ошибки не пишутся...просто при клике по ссылке осуществляется переход не на тут страницу,которую нужно
 

baev

‹°°¬•
Команда форума
Ну так и покажите эту нерабочую ссылку.
И как её mod_rewrite обрабатывает.

(Очень сильно сомневаюсь, что дело в mod_rewrite.)

________________________

P.S.
echo $_GET['имя переменной']
— какое это имеет отношение к mod_rewrite?..
 

Mikelangelo

Новичок
baev
Вот адрес стрнаицы, с которой ведет ссылка
http://work.buket-spb.ru/catalog.html
ссылка которая локально не работает локально (первый товар в каталоге):
http://work.buket-spb.ru/catalog/type1/subtype12/item158.html

локально если прейти по ней вместо подробного описания товара на странице ничего не изменяется,просто снова показывается содержание каталога
 

Dovg

Продвинутый новичок
Mikelangelo
Может быть стоит показать правила?
 

Mikelangelo

Новичок
baev
Ну если переменные, предаваемые методом GET считываются из адреса страницы,а реврайт как раз и позволяет видоизменять этот самый адрес, то на что грешить кроме как на реврайт я не знаю...

-~{}~ 22.03.07 13:30:

Dovg

RewriteRule ^catalog/type([0-9]+)/subtype([0-9]+)/item([0-9]+)\.html$ catalogdetails.php?catalogtype=$2&catalogitem=$3
 

Dovg

Продвинутый новичок
Mikelangelo
локально если перейти по ней вместо подробного описания товара на странице ничего не изменяется,просто снова показывается содержание каталога
var_dump($_GET);
var_dump($_SERVER["REQUEST_URI"]);

там и здесь что показывают?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Проверерьте действительно ли работает реврайт.

Например так

RewriteRule ^rewritetest / [R]
Должен произойти редирект на кореневую директорию сайта.

Сылки по реварйту
http://phpclub.ru/detail/article/2001-01-16
http://www.egoroff.spb.ru/portfolio/apache/

Если директория catalog существует, то

локально если перейти по ней вместо подробного описания товара на странице ничего не изменяется,просто снова показывается содержание каталога

скорее всего реврайт не работает.
 

Mikelangelo

Новичок
Dovg
Для внешнего
array(2) { ["catalogtype"]=> string(2) "12" ["catalogitem"]=> string(3) "158" } string(37) "/catalog/type1/subtype12/item158.html"
Локально
array(0) { } string(37) "/catalog/type1/subtype12/item158.html"

-~{}~ 22.03.07 14:07:

Mr_Max
RewriteRule ^rewritetest / [R] локально работает нормально преадресует на стартовую.
Да и вдругих проектах,которые я делал локально реврайты работали.mod_rewrite то есть,другое дело,что он работает как-то иначе чем на хостинге
 

Black Raven

Новичок
попробуй переписать правила из .htaccess в соответствующий VirtualHost в httpd.conf
 

Mikelangelo

Новичок
Mr_Max
директории сatalog не существует

-~{}~ 22.03.07 14:31:

Black Raven

# Host /home/buket-spb/www (38):
#Listen 127.0.0.1:80
#NameVirtualHost *:*
<VirtualHost *:*>
DocumentRoot "X:/home/buket-spb/www"
ServerName "buket-spb"
ServerAlias "buket-spb" "www.buket-spb"
ScriptAlias /cgi/ "/home/buket-spb/cgi/"
ScriptAlias /cgi-bin/ "/home/buket-spb/cgi-bin/"
ErrorLog "/home/buket-spb/error.log"
RewriteEngine On
RewriteBase /
RewriteRule ^catalog/type([0-9]+)/subtype([0-9]+)/item([0-9]+)\.html$ catalogdetails.php?catalogtype=$2&catalogitem=$3

</VirtualHost>

вот так вот...рестартанул Апач..не заработало
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
<VirtualHost 127.0.0.1>
ServerAdmin webmaster@site
DocumentRoot D:/www/site
ServerName site
<Directory "D:/www/site">
RewriteEngine on
....
много правил
...
</Directory>
</VirtualHost>

-~{}~ 22.03.07 13:41:

http://www.whoopis.com/howtos/apache-rewrite.html
 

Mikelangelo

Новичок
Mr_Max
Black Raven

<VirtualHost 127.0.0.1>
ServerAdmin webmaster@site
DocumentRoot X:/home/buket-spb/www
ServerName http://buket-spb
<Directory "X:/home/buket-spb/www">
RewriteEngine on
RewriteRule ^catalog/type([0-9]+)/subtype([0-9]+)/item([0-9]+)\.html$ catalogdetails.php?catalogtype=$2&catalogitem=$3
</Directory>
</VirtualHost>

X - вирутальный диск,созданный Денвером
Локально сайт запускается http://buket-spb.

-~{}~ 22.03.07 15:15:

Так и не заработало
ЗЫ .htaccess я временно удалил
 
Сверху