.htaccess 如何防止直接访问文件,同时允许重写规则访问这些文件

iyr7buue  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(126)

我想要的是停止直接用户请求online.php,但是我希望页面仍然可以访问重写规则,这是我的重写规则
RewriteRule ^/?@([A-Za-z0-9]+)$ online.php?username=$1
我试过了,但没有成功

RewriteCond %{REQUEST_URI} /online.php
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule .* page-not-found.php

我想隐藏的原始文件的url是https://example.com/online.php?username=example,而我只想从https://example.com/@example访问它

p4tfgftt

p4tfgftt1#

请使用您显示的示例和尝试尝试尝试以下htaccess规则文件。请确保:

  • 将htaccess和online.php文件保存在同一个文件夹中。
  • 在测试URL之前清除浏览器缓存。
RewriteEngine ON

##External redirect and blocking direct access for online.php file.
RewriteRule ^online\.php/?$ - [NC,F,L]

##External redirect and blocking direct access for online.php file.
RewriteCond %{THE_REQUEST} \s/online\.php\?username=(\S+)\s [NC]
RewriteRule ^ - [F,L]

##Internal rewrite rules to rewrite to online.php file.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/?$ online.php?username=$1 [QSA,L]

相关问题