当通过在根文件夹中添加.htaccess来使用Pretty URL时,我的<a href="">
链接当然不需要.php
文件扩展名。但是,当我使用PHP require
或include
时,它会引发错误,并且似乎没有使用.htaccess来添加必要的.php,要求我将.php添加到这些语句中。 / p>
.htaccess
# Redirect everything that doesn't match a directory or file to index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
相关的.php文件:
<!DOCTYPE html>
<head></head>
<body>
<?php require "../Resources/nav.php";?>
// Main Content
<?php require "../Resources/footer.php";?>
</body>
有人知道为什么这些语句不使用.htaccess吗?仅仅是需要包括文件扩展名,还是有办法强迫他们使用.htaccess?
答案 0 :(得分:2)
Apache Web服务器对网络上的请求做出反应。 RewriteRules仅适用于这些请求。
PHP require
,include
,file_get_contents
等功能通常访问本地存储,而不是通过网络向Apache发送HTTP请求。
虽然可以将file_get_contents
与URL结合使用,并且有时有用,但是在您的用例中,您必须添加.php
扩展名以解决正确的本地文件。