使用 htaccess 隐藏目录
Hide a directory with htaccess
我正在尝试隐藏 url 的目录 users
(例如::):meusite.com.br/users/teste
但到目前为止还没有成功。就像通过访问 meusite.com.br/teste
显示文件夹 teste
中的内容,如果访问 URL meusite.com.br/users/teste
/users/
被删除并且只显示 meusite.com.br/teste
.
我试过:
RewriteCond %{REQUEST_URI} !^/users
RewriteRule (.*) /users/ [QSA,L]
但是我没有成功。我也试过:
RewriteCond %{REQUEST_URI} !^/users
RewriteRule ^/?([^/]+)$ /users/ [L]
但没有成功。
为了更好地理解,它遵循站点文件夹的部分结构:
├── users
| ├── teste
| | └── index.html
| └── outroteste
| └── index.html
├── .htaccess
└── index.php
因为我的文件“htaccess”已经存在:
<IfModule mod_rewrite.c>
RewriteEngine On
# Rewrites the requested http to https.
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
# Hide GET variables link.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^posts/(.*) posts.php?p=
</IfModule>
希望能帮到你
您可以在重定向规则下方使用 users
隐藏规则:
DirectorySlash Off
RewriteEngine On
# Rewrites the requested http to https.
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301]
# add a trailing slash to directories
RewriteCond %{DOCUMENT_ROOT}/users// -d
RewriteRule ^(.*?[^/])$ %{REQUEST_URI}/ [L,R=302,NE]
RewriteCond %{THE_REQUEST} /users/(\S*)\s [NC]
RewriteRule ^ /%1 [R=302,L,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?((?!users/).*)$ users/ [L,NC]
# Hide GET variables link.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^posts/(.*) posts.php?p= [L,QSA]
但请记住,它会将所有内容转发给 /users/
,从而使您的最后一条规则失效。
我正在尝试隐藏 url 的目录 users
(例如::):meusite.com.br/users/teste
但到目前为止还没有成功。就像通过访问 meusite.com.br/teste
显示文件夹 teste
中的内容,如果访问 URL meusite.com.br/users/teste
/users/
被删除并且只显示 meusite.com.br/teste
.
我试过:
RewriteCond %{REQUEST_URI} !^/users
RewriteRule (.*) /users/ [QSA,L]
但是我没有成功。我也试过:
RewriteCond %{REQUEST_URI} !^/users
RewriteRule ^/?([^/]+)$ /users/ [L]
但没有成功。
为了更好地理解,它遵循站点文件夹的部分结构:
├── users
| ├── teste
| | └── index.html
| └── outroteste
| └── index.html
├── .htaccess
└── index.php
因为我的文件“htaccess”已经存在:
<IfModule mod_rewrite.c>
RewriteEngine On
# Rewrites the requested http to https.
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
# Hide GET variables link.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^posts/(.*) posts.php?p=
</IfModule>
希望能帮到你
您可以在重定向规则下方使用 users
隐藏规则:
DirectorySlash Off
RewriteEngine On
# Rewrites the requested http to https.
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301]
# add a trailing slash to directories
RewriteCond %{DOCUMENT_ROOT}/users// -d
RewriteRule ^(.*?[^/])$ %{REQUEST_URI}/ [L,R=302,NE]
RewriteCond %{THE_REQUEST} /users/(\S*)\s [NC]
RewriteRule ^ /%1 [R=302,L,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?((?!users/).*)$ users/ [L,NC]
# Hide GET variables link.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^posts/(.*) posts.php?p= [L,QSA]
但请记住,它会将所有内容转发给 /users/
,从而使您的最后一条规则失效。