我有这个设置:
images
image1.jpg
image2.jpg
header.html
about
index.php
image3.jpg
但是去MyWebsite.com/About最后给了它一个额外的斜线。我决定采用在我的主目录中创建一个名为about的文件的解决方案:
images
image1.jpg
image2.jpg
header.html
about
aboutfiles
image3.jpg
问题是现在这个文件不允许我使用.php:
<?php include('header.html');?>
它没有显示头文件。我能做些什么才能做到这一点?
答案 0 :(得分:2)
您的问题是您的网络服务器无法将文件名“about”识别为php文档。你有三个选择
第一个解决方案是最简单,最简单的,在任何使用PHP的文档中,扩展名应为.php
答案 1 :(得分:1)
关于mywebsite.com/about
问题,它更像是Apache配置问题。你必须告诉Apache,index.php应该是一个索引文件。
答案 2 :(得分:1)
首先,您可以将Apache(或IIS)配置为使用任何Extensions来处理PHP代码。
如果需要,您可以将.ThisIsAPHPFile
定义为有效的扩展名。
但是,Directorys始终会显示尾随/
:www.example.com/dir1/
(浏览器并不总是显示尾随/
),而文件的扩展名为www.example.com/dir1/index.html
。
那么,从我看到的情况来看,你想使用www.example.com/about
但是要显示about-FILE?
因此,您可以使用Web服务器的重写引擎。在使用Apache时要么看一下mod-rewrite(http://httpd.apache.org/docs/current/en/mod/mod_rewrite.html),要么在使用IIS时看一下(一种可能性)ISAPI-Rewrite(http://www.isapirewrite.com/docs/)。
答案 3 :(得分:1)
如果在apache conf文件中编辑virtualhost指令,则可以添加以下内容:
DefaultType application/x-httpd-php
这将告诉apache发送不以扩展名结尾的Web路径,以便使用php引擎进行渲染。
因此,/ about就像是about.php一样。另一种可能更有用的方法是在服务器上将文件命名为about.php,并允许引用它而不使用url中的.php。为此,您将以相反的方式配置它。
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]