Какую цель этим преследуете?
Если коротко, то не вижу большого смысла, т.к. файл `admin.php` все равно будет у вас в корне и будет доступен по прямому адресу `http://srv.name/admin.php`.
Добавлено 8 часов спустя:
Потестировал локально одно из решений задачи... Излагаю на правах #FAQ.
1. Изменяем имя доступа к админке:
2. Закрываем `admin.php` от прямого доступа:
- в `.htaccess` полдоплняем предыдущую вставку и дописываем еще одно правило, чтобы в итоге получилось так:
# проверяем «секретный» параметр
RewriteCond %{QUERY_STRING} !adminAllowed=1
# если парметр не указан блокируем доступ
RewriteRule ^(admin\.php) - [L,F]
# добавляем «секретный параметр», если мы пришли с правильного адреса
RewriteRule ^testadmin(\?|/)? admin.php?adminAllowed=1 [QSA,NC,NE,L]
3. Для большей безопасности закрываем «папку» `/testadmin/` дополнительным паролем средствами Apache. Для этого:
- создаем соответствующую папку `testadmin`.
- в папке создаем `.htaccess` следующего содержания:
# настройка простой авторизации (!! не забываем поменять путь на актуальный)
AuthUserFile полный/путь/на/сервере/до/файла/.htpasswd
AuthName "Admin Secure Zone"
AuthType Basic
Require valid-user
# запрет просмотра списка файлов в папке
Options -Indexes
# базовый каталог на сайте (значение должно совпадать с тем,
# что у вас в основном .htaccess)
RewriteBase "/"
# перенаправляем пользователя с индексного файла этой папки на админку
# не забыв при этом «секретный» параметр
RewriteRule ^index\.html admin.php?adminAllowed=1 [QSA,NC,NE,L]
- Создаем файл `.htpasswd` средствами командной строки или онлайн. Подробнее см. в интернет. Например здесь. (Файл лучше разместить за пределами папки с файлами сайта. Путь к файлу надо указать в только что созданном .htaccess).
- в папке `testadmin` cоздаем файл заглушку `index.html`. Содержимое можно скопировать отсюда.
Все. Теперь при первичном заходе в админку сервер у вас спросит логин/пароль.
Добавлено 57 секунд спустя:
Еще схожий материал «Админка на субдомене».