我有像
这样的子页面mypage.com/subpage
但这只是别名,所有文件都在/data/subpage
。并且只有用户自己需要访问的文件是index.php
,所有其他文件都是由索引本身导入的,具体取决于属性(GET,会话等)。
我想要这个:
index.php
而不是/subpage
/data/subpage
/data/subpage
及其子文件夹index.php
访问这些文件。我希望我把它写成可以理解。
感谢您的帮助
编辑:我当前的.htaccess(位于根目录)
RewriteEngine On
RewriteRule ^subpage$ /data/subpage/index.php [L]
RewriteRule ^subpage/(?:([^/]+)/?|)(?:([^/]+)/?|)$ /data/subpage/index.php?section=$1&subsection=$2 [L]
RewriteRule ^edit/subpage/?(?:([^/]+)/?|)(?:([^/]+)/?|)$ /data/subpage/index.php?edit=true§ion=$1&subsection=$2 [L]
答案 0 :(得分:1)
尝试:
RewriteCond %{THE_REQUEST} \ /+data/subpage/
RewriteRule ^ - [L,R=404]
以便/data/subpage/
的任何直接请求都会产生404.如果您希望将R=404
替换为{403},则可以将F
替换为RewriteCond %{THE_REQUEST} \ /+data/subpage/
RewriteCond %{HTTP_REFERER} !^http://yourdomain.com/subpage/(index\.php)?
RewriteRule ^ - [L,R=404]
。
编辑:
这是对的,谢谢。我作为一个观众,无法访问这些文件,但我的页面也无法访问它(例如图像)。有没有办法做到这一点?
这不是您的页面访问这些文件,它是您的页面告诉浏览器访问它们。这意味着你要知道页面告诉浏览器访问它们的唯一方法是检查引用者。不幸的是,引用者可以被轻易伪造,所以这并不能保证人们无法获取所有文件。
{{1}}