.htaccess mod_rewrite для веб-службы, а также скрыть другие файлы - PullRequest
0 голосов
/ 31 декабря 2010

Мне кажется, я знаю, как скрыть файлы, но как использовать mod_rewrite, чтобы разрешить вызов только веб-службы в одном каталоге?

Вот структура каталогов / файлов

/var/www/html/xmlrpc/xmlrpc.server.php
/var/www/html/xmlrpc/xmlrpc.client.php
/var/www/html/xmlrpc/xmlrpc.class.php
/var/www/html/xmlrpc/xmlrpc.ini
/var/www/html/xmlrpc/logs

Важное замечание: / var / www / html / xmlrpc / logs имеет разрешение 777, прежде чем вы начнете говорить мне, я планирую переместить это в непубличный каталог и дать правильные разрешения.Но меня спросили, могу ли я спрятать его с помощью файла .htaccess.

.htaccess

AuthType Basic
AuthName "My hidden files"
AuthBasicProvider file
AuthUserFile /var/www/html/xmlrpc/.pswds
Require valid-user

.pswds

user:5/abcde1abcdE

Также яновичку с mod_rewite / mod_alias и нужен этот URL:

http://127.0.0.1/xmlrpc/xmlrpc.server.php

, чтобы быть таким:

http://127.0.0.1/xmlrpc/v1/

Как это сделать?

Также, если вы знаете, что при настройке виртуального хоста в Apache вы можете указать пути / имена файлов журнала, можно ли это сделать и из файла .htaccess?

Примеры приветствуются, так как этоопыт обучения для меня.

1 Ответ

1 голос
/ 31 декабря 2010

А-а mod_rewrite. Попробуйте это в каталоге xmlrpc:

RewriteEngine On
RewriteRule ^v1/$ xmlrpc.server.php [L]

Некоторые вопросы, хотя - xmlrpc.server.php принимает какие-либо параметры get? Можете ли вы гарантировать, что URL всегда будет содержать косую черту?

Чтобы применить косую черту, а также некоторые другие вещи, попробуйте это:

# Allows direct linking to files
RewriteCond %{REQUEST_FILENAME} !-f

#Checks if the url is missing a slash, if so, evaluate rule below
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://127.0.0.1/$1/ [L,R=301]

Последнее правило должно быть скорректировано в зависимости от того, куда вы положили файл .htaccess. Если он находится в корне, он будет работать для всех нижних каталогов. Если он находится в папке xmlrpc, вы можете отключить localhost.

Также не забудьте ограничить доступ к файлу .htaccess:

<Files .htaccess>
    order allow,deny
    deny from all
</Files>

Кто-то еще должен будет ответить на другие вопросы - не настолько знакомы с этим.

...