我试图在我的网络服务器上实现一些非常简单的东西。我希望以 .php 结尾的网址以 / 结尾,例如 www.example.net/something.php 为 www.example.net/something 或 www.example.net/folder/subfolder/something.php 为 www。 example.net/folder/subfolder/something。此外,我不介意我是否有 www.example.net/folder/something.php?something=whatever/。我只关心删除 url 中的最后一个 .php 。我在许多其他代码中都使用过此代码。
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .*[^/]$ $0/ [L,R=301]
RewriteRule (.*)/$ $1.php [L]
但是,这只适用于我的某些页面。例如,它不适用于我的 www.example.com/folder/contactus.php 页面。相反,我得到了我的 404 页面。但它可以完美地在 www.example/folder/faq.php 上运行。此外,我在代码的各个部分中提出了一些 file_get_contents() php 请求。有没有办法定制这些规则,所以内部请求(我的 php 函数)不受影响。基本上,我只希望浏览器显示没有 .php 结尾的 url,而不会影响 .php 文件中保存的其他 php 函数。为了进一步澄清我的意图:我使用字符串处理函数根据我设置的变量从 php 文件中提取特定的文本行。但是根据当前的重写规则,找不到 php 文件,因为扩展名已从文件名中删除(我猜。
$file_contents = file_get_contents($filename);
我目前在共享的 Godaddy 主机帐户上使用 linux 服务器。