2016-10-06 3 views
0

Я новичок в PHP, apache, пытался сделать mod_rewrite вещь, это код , он должен переписать с localhost/main/teacher/index.php?subj=departments на localhost/main/staff/department. Если я набираю ссылку localhost/main/staff/department, она работает, но Всякий раз, когда я нажимаю на ссылку, она дает localhost/main/staff/index.php?subj=department.Apache mod_rewrite не правильно связывается

Вот мой .htaccess код:

RewriteEngine On 
Rewrite ^staff/(.+)$ teacher/index.php?subj=$1 [NC, L] 
+2

'mod_rewrite' не имеет ничего общего с PHP, это делается на веб-сервере Apache. – Barmar

+0

Правила, которые вы размещали, конечно, не создадут результат, который вы укажете. Может быть, вы смотрите на кешированный результат? Попробуйте сделать «глубокую перезагрузку» или очистить кеш браузера. – arkascha

+0

изменит заголовок, но как я могу исправить эти – Enitopee

ответ

0

Вот что вы должны иметь в своем файле .htaccess:

RewriteEngine On 
RewriteRule ^staff/(.+)$ teacher/index.php?subj=$1 [NC] 

Обратите внимание на второй линии начинается с RewriteRule, не Rewrite. Кроме того, вы должны удалить флаг L из этого правила.

Подробнее о флагах here.

Желаю, чтобы кто-то улучшил ответ и подробно объяснил, почему NC, L не работает, а NC работает только один.

+0

, изменил переписывание на RewriteRule, но все равно ту же ошибку, даже очищенный кеш браузера – Enitopee

+0

Кэш-браузер не имеет к этому никакого отношения, мы возимся с тем, как apache обращается к запросу. Вы удалили флаг? Есть ли что-нибудь еще в вашем файле .htaccess? –

Смежные вопросы