我想我知道如何隐藏文件但是如何使用mod_rewrite只允许在同一目录中调用Web服务?
这是目录/文件结构
/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的新手,需要这个网址:
http://127.0.0.1/xmlrpc/xmlrpc.server.php
是这样的:
http://127.0.0.1/xmlrpc/v1/
如何做到这一点?
另外,在了解Apache中的虚拟主机设置时,您可以设置日志文件路径/名称,这也可以从.htaccess文件中完成吗?
欢迎举例,因为这对我来说也是一次学习经历。
答案 0 :(得分:1)
啊mod_rewrite。在xmlrpc目录中尝试:
RewriteEngine On
RewriteRule ^v1/$ xmlrpc.server.php [L]
但有些问题 - xmlrpc.server.php是否接受任何get参数?你能保证网址总是包含一个斜杠吗?
要强制执行尾部斜杠以及其他一些内容,请尝试以下操作:
# 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文件夹中,那么您可以不使用本地主机。
还记得限制对.htaccess文件的访问:
<Files .htaccess>
order allow,deny
deny from all
</Files>
其他人必须回答其他问题 - 不熟悉。