为了账号安全,请及时绑定邮箱和手机立即绑定

Apache,如何处理像标准URL这样的未知php文件?

Apache,如何处理像标准URL这样的未知php文件?

PHP
鸿蒙传说 2022-08-19 10:57:08
我有一个Symfony网站,我已经重命名了主入口点,因此“索引.php”无法访问,也无法被搜索电机索引。它运行良好。但是,当我尝试访问此文件时,我没有得到一个404文件,找不到,这个404页面由Apache处理,而不是由应用程序处理,它是标准的404页面:Not FoundThe requested URL was not found on this server.我希望像/index.php这样的URL(实际上*.php)由Symfony应用程序处理,以显示具有良好布局的自定义错误页面。我的虚拟主机看起来像这样,我试图添加一个“目录索引”指令,但没有成功。# configuration/vhosts/prod/mywebsite.com-le-ssl.conf<IfModule mod_ssl.c>    <VirtualHost *:443>        ServerName www.mywebsite.com        DocumentRoot /var/www-protected/mywebsite.com/public        <Directory /var/www-protected/mywebsite.com/public>            AllowOverride All            Require all granted            FallbackResource /my-secret-entry-point.php        </Directory>        RedirectMatch 404 /\.git        ErrorLog /var/log/apache2/mywebsite.com_error.log        CustomLog /var/log/apache2/mywebsite.com_access.log combined        RewriteEngine on        RewriteCond %{SERVER_NAME} =mywebsite.com        RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]        SSLCertificateFile /etc/letsencrypt/live/www.mywebsite.com/fullchain.pem        SSLCertificateKeyFile /etc/letsencrypt/live/www.mywebsite.com/privkey.pem        Include /etc/letsencrypt/options-ssl-apache.conf    </VirtualHost></IfModule>
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

这可以通过mod_rewrite来完成,回复:301


Options +FollowSymLinks

DirectoryIndex index.php


RewriteEngine On

RewriteBase /


RewriteCond %{THE_REQUEST} ^.*/index\.php 

RewriteRule ^(.*)index.php$ /$1 [R=301,L]


RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

默认错误文档可用于将错误代码分派给 PHP:


ErrorDocument 404 https://mywebsite.com/error/page/404

ErrorDocument 500 https://mywebsite.com/error/page/500

然后,人们仍然可以发送任何想要的内容 - 或者只是显示具有相同标题的页面。header()


查看完整回答
反对 回复 2022-08-19
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号