Б.
1 сообщение
#17 лет назад
Всем привет.

Есть проблемка, я недавно начал знакомится с mod_rewrite. Так вот у меня есть линки вида http://localhost/Pm/adm_comps.php?p=1
Написал скрипт для рерайтинга

Options +FollowSymLinks
RewriteEngine on
RewriteRule adm_comps-p-(.*)\.htm$ adm_comps.php?p=$1

Но нифига не работает, потом уже отчаялся перерыл кучу доков и решил тупо поробовать те примеры, к-е там были разобраны, но все тщетно, и они не работают. Причем в error_log ни чего нет по этому поводу. Т.е. перенаправление не происходит, как приходил на http://localhost/Pm/adm_comps.php?p= так и прихожу.

Выручайте господа )
Станислав Малкин
1410 сообщений
#17 лет назад
Вы не так делаете. Попробуйте зайти по адресу: http://localhost/Pm/adm_comps-p-1.htm

Если при этом не покажется страница - значит смотрите логи. Если рейврайт не работает, то возможно он не активирован или не прописаны правила виртуалхоста.
Если апач под виндой - добавить секцию <Directory /></Directory>. Например:


<VirtualHost *:80>
ServerAdmin ***
DocumentRoot e:/bla-bla/
ServerName bla-bla
<Directory />
AllowOverride All
Options FollowSymLinks
</Directory>
ErrorLog logs/bla-bla-error_log
CustomLog logs/bla-bla-access_log common
</VirtualHost>


Вы просто не поняли смысла mod_rewrite. Он не "перенаправляет" на другую страницу. А при заходе на псевдолинк - данные передаются оригинальному скрипту, тоесть делается просто подмена адресной строки, а совсем не перенаправление, как Вы, похоже, это поняли.