You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过.htaccess限制PHP页面仅应用内访问,仅开放index.php入口?

解决内部页面仅允许应用内访问的问题

问题场景

我希望自己的应用仅允许内部页面之间互相访问、引用各类资源页面,只有作为应用入口的主页面index.php除外。举个实际例子:如果我在本地桌面创建一个带有指向应用页面链接或表单的HTML文件,当通过这个外部文件访问应用内页面时,应该被自动重定向到index.php。

最初尝试的无效配置

我一开始用了下面的.htaccess规则,但发现桌面的外部文件还是能正常访问服务器页面,完全没达到预期效果:

Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from ::1
<Files /index.php>
Order Allow,Deny
Allow from all
</Files>
<FilesMatch ".*\.(css|js)$">
Order Allow,Deny
Allow from all
</FilesMatch>

已生效的解决方案

后来我修改了.htaccess配置,现在已经完美实现需求了:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC]
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ http://localhost/website/index.php [R,L]

配置逻辑说明

  • 首先开启RewriteEngine启用URL重写模块
  • 前两条RewriteCond用来检查请求的来源(Referer)是否非本地服务器(localhost),[NC]参数表示忽略大小写匹配
  • 第三条规则专门排除入口页面index.php,避免出现循环重定向的问题
  • 最后一条RewriteRule会把所有不符合条件的请求,直接重定向到指定的应用入口index.php页面

内容的提问来源于stack exchange,提问作者Pavllo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:46:04