2012-07-04 3 views
0

Я использую переписывание URL-адресов на своем веб-сайте, и я хотел бы добавить аутентификацию через файл .htpasswd в один из моих каталогов.URL rewriting и htpasswd

Мой сайт построен как этот

/home/website/ 
/home/website/protected/ 
/home/website/protected/.htaccess 
/home/website/protected/.htpasswd 
/home/website/protected/admin.php 
/home/website/.htaccess 
/home/website/index.php 
/home/website/index_protected.php 

On/главная/сайт/каталог я получил файл .htaccess:

RewriteRule ^directory([0-9]+)/protected/([a-z0-9-_]+).php /home/website/protected/admin.php?d=$1&p=$2 [QSA] 

Использование URL как

http//website/directory1/protected/test.php 

вы будете звоните

/home/website/1/protected/admin.php?d=1&p=test 

На .htaccess из/защищенного каталога/я получил:

AuthName "Page d'administration protégée" 
AuthType Basic 
AuthUserFile "/home/website/protected/.htpasswd" 
Require valid-user 

И .htpasswd из/защищенного каталога/я получил:

admin:crypted_password 

Но моя проблема заключается в том, что, когда я называю

http//website/directory1/protected/test.php 

У меня никогда не было окон аутентификации, любая идея исправить это?

ответ

0

Вы можете попробовать разместить файл .htaccess с основными директивами Auth в защищенный каталог.

+0

Возможно, я не понимаю, но в каталоге my/protected/я уже получил файл .htaccess с директивой «Basic Auth» – Natha

+0

Извините, конечно, я нашел его в вашем вопросе. –

+0

Np, спасибо, попробуйте помочь мне – Natha

0

В основном это происходит, когда сервер не использует файл .htaccess. Убедитесь, что разрешено использовать этот файл в/home/website/protected/not only/home/website /.

+0

Nop, если я открою URL-адрес http: //website/protected/admin.php, окна аутентификации открываются, поэтому, похоже, разрешено – Natha

+0

Подождите, так что вы получите экран проверки подлинности на веб-сайте/защищенном /admin.php, но не на сайте/protected/test.php? Попробуйте добавить RewriteRule после правила аутентификации. Может быть, это то, что вас пугает. – Peon

+0

На самом деле, я добрался до файла .htaccess, сначала на веб-сайте/с правилами перезаписи и второй в/website/protected/с правилом аутентификации. В /website/protected/admin.php мне нужно иметь $ _GET ['d'] и $ _GET ['p'], которые заданы с первого .htaccess (с правилами перезаписи). Страница test.php не существует, переписывание url просто преобразует ее в p = test и отправляет ее в файл /website/protected/admin.php. – Natha