如何使用.htaccess隐藏目录路径,我对操作方法一无所知
示例:
localhost/MainFolder/SubFolder/adminFolder/dashboard.php
并且我想查看我的网址或类似这样的输出
localhost/MainFolder/SubFolder
答案 0 :(得分:0)
您可以执行以下操作:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/?MainFolder/SubFolder/?$ [NC]
RewriteRule ^.+$ /MainFolder/SubFolder/adminFolder/dashboard.php/?ir=true [L,QSA]
RewriteCond %{REQUEST_URI} ^/?MainFolder/SubFolder/adminFolder/dashboard.php [NC]
RewriteCond %{QUERY_STRING} !^.*?ir=true.*$
RewriteRule ^.+$ /MainFolder/SubFolder/?ir=true [L,R=301,QSA]
演示:
当某人请求http://localhost/MainFolder/SubFolder/adminFolder/dashboard.php
时,其行为将如下所示:https://htaccess.madewithlove.be?share=025f8c6d-b163-59c5-84d5-3f0fda163a6e
当某人请求http://localhost/MainFolder/SubFolder/
时,其行为将如下所示:https://htaccess.madewithlove.be?share=0072cd98-6259-5431-a3bb-65bf222bf247
在上面的代码段中,为避免出现过多的重定向问题,我们在内部传递了一个查询参数,以确保不以循环结尾。如果我们找到参数ir=true
,则不会满足任何规则且代码将被执行,否则它将通过添加查询参数ir=true
并使服务器实现您从先前的重写规则本身重定向而按预期工作。 / p>
解决此问题的最佳方法是避免对adminFolder
的目录访问权限,并在Subfolder
中具有index.php并使用require_once()调用adminFolder/dashboard.php
。