gpt4 book ai didi

linux - .htaccess mod_rewrite 用于 web 服务以及隐藏其他文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:39:42 25 4
gpt4 key购买 nike

我想我知道如何隐藏文件,但如何使用 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 权限在您开始对我喋喋不休之前,我计划将其移至非公共(public)目录并授予正确的权限。但我被要求查看是否可以使用 .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 文件中完成吗?

欢迎提供示例,因为这对我来说也是一种学习经历。

最佳答案

啊 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 文件夹中,那么您可以省略本地主机。

还要记住限制对 .htaccess 文件的访问:

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

其他人将不得不回答其他问题 - 不太熟悉。

关于linux - .htaccess mod_rewrite 用于 web 服务以及隐藏其他文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4566444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com