我想隐藏我的网站结构,并使用.htaccess将所有可能的请求重定向到一个文件(index.php)。
现在,我使用.htaccess拒绝读取图像和目录以及将请求重定向到index.php的权限。如果有人请求禁止的目录/文件,则显示E403。在这种情况下,我想将请求重定向到index.php,而不是E403。
所以基本上:我想开始在单个文件(index.php)中处理每个可能的请求(现有/不存在的页面,.php文件,图像,其他文件,dir ...,除了CSS和js)。 ,无论如何,因此用户每次都会看到我的index.php内容(由服务器端的许多文件生成,具体取决于URI)。我的.htaccess可以隐藏图像内容,但不能隐藏结构和PHP文件。如果有人请求无效的URI,它就可以工作(index.php显示错误消息),但是如果有人请求一个现有的PHP,它将执行它。
Order allow,deny
Deny from all
</Files>
<FilesMatch "\.(log|jpg|png|jpeg|gif|ico|jfif|pdf|phtml)$">
Order allow,deny
Deny from all
</FilesMatch>
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(css|js)$ index.php [L]
AddType application/x-httpd-php .php .phtml
答案 0 :(得分:1)
您可以以php
或html
格式定义特定的错误页面。您可以将访问者重定向到特定页面
ErrorDocument 404 /errors/404.php
ErrorDocument 403 /errors/403.php
例如,在404.php
中,您可以使用以下代码:
header("Location: http://example.com/index.php");
或者如果您想使用index.html
,可以这样做:
<html>
<head>
<meta http-equiv="refresh" content="0; url=http://example.com/" />
</head>
</html>
或者也可以执行以下操作:
ErrorDocument 404 /index.php
ErrorDocument 403 /index.php
此link也很有帮助
,对于您的新评论,答案是“是”。您可以将扩展程序作为另一个扩展程序处理,请看以下代码:
AddType application/x-httpd-php .mp3
RewriteEngine On
RewriteRule /load.mp3 /load.php
此代码将添加mime类型,并将.mp3
文件作为.php
处理
您也可以使用以下代码:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.+).mp3$ /$1.php [NC,L]
这个link也很有用