#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 но это не сработало, когда я удалил другие правила (его правила, установленные веб-хостингом)