Я хочу использовать один файл .htaccess
как для корневой директории, так и для каталогов администратора.Как настроить каталог в mod_rewrite htaccess с несколькими переменными?
При попытке иметь чистые URL-адреса я хочу использовать файл admin/index.php
, когда администратор находится в URI. В противном случае используйте корневой каталог index.php
.
Это то, что у меня есть, которое отлично подходит для первой переменной (например, localhost/admin/users), однако приводит к 404, если я помещаю вторую переменную (например, localhost/admin/users/add_user).
Пожалуйста, помогите или упростить, я потянув меня за волосы ...
RewriteEngine on
# Remove trailing '/'
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R,L]
RewriteRule ^admin/?$ /admin/index.php
RewriteRule ^admin/([a-zA-Z0-9-]+)/?$ /admin/index.php?controller=$1 [QSA]
RewriteRule ^admin/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/?$ /admin/index.php?controller=$1&method=$2 [QSA]
RewriteRule ^admin/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/?$ /admin/index.php?controller=$1&method=$2&id=$3 [L,QSA]
RewriteRule ^([a-zA-Z0-9-]+)/?$ /index.php?controller=$1 [QSA]
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/?$ /index.php?controller=$1&method=$2 [QSA]
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/?$ /index.php?controller=$1&method=$2&id=$3 [QSA]
Код выглядит хорошо. Например, вы пытались изменить порядок правил администратора? Самый длинный верх, кратчайший снизу. –