RewriteRule не работал для меня

#apache #mod-rewrite #web

#apache #мод-перезапись #веб

Вопрос:

Моя навигация example.com/admin/?nav=home , и я хочу, чтобы RewriteRule отображал только example.com/admin/ or example.com/admin/home или example.com/admin/new .

Я попробовал несколько руководств, но они не сработали. Спасибо за ответ.

Комментарии:

1. Можете ли вы опубликовать свой код перезаписи?

2. RewriteEngine On RewriteCond %{REQUEST_URI} /?nav=$ RewriteRule ^(.*)$ ./?nav=$1 [R] но я перепробовал много кодов из учебников и не работал :/

Ответ №1:

Попробуйте это:

 RewriteEngine On     
RewriteBase /               
RewriteRule ^admin/home$    admin/?nav=home
 

Это будет отображаться admin/?nav=home как /admin/home

Для динамических URL-адресов попробуйте это:

 RewriteEngine On
RewriteRule ^admin/([^/]*)$ /admin/?nav=$1 [L]
 

Комментарии:

1. 1, красиво и чисто… Возможно, удалите / перед admin динамической частью 🙂

2. @Lizardor Может быть, вы удалили RewriteBase ? Также у вас есть другие правила, которые могут конфликтовать (до или после)?

3. @zx81 я ничего не пытался удалить RewriteBase, да, у меня есть другие правила после

4. @Lizardor не могли бы вы опубликовать свой файл .htaccess, пожалуйста?

5. @zx81 но это не сработало, когда я удалил другие правила (его правила, установленные веб-хостингом)