相对URL不加载PHP文件,但精确URL加载

相对URL不加载PHP文件,但精确URL加载,php,apache2,Php,Apache2,相关代码: if(strpos($\u SERVER['REQUEST\u URI'],'/admin/')==0){ 包括一次“admin.php”; 出口 } if(strpos($\u服务器['REQUEST\u URI'],'pc-repair-')!==FALSE和strpos($\u服务器['REQUEST\u URI'],'-computer services')!==FALSE){ 包括_once“locations/default.php”; 出口 } 包括一次'inl/hea

相关代码:

if(strpos($\u SERVER['REQUEST\u URI'],'/admin/')==0){
包括一次“admin.php”;
出口
}
if(strpos($\u服务器['REQUEST\u URI'],'pc-repair-')!==FALSE和strpos($\u服务器['REQUEST\u URI'],'-computer services')!==FALSE){
包括_once“locations/default.php”;
出口
}
包括一次'inl/head.php';
网站上的链接示例:

正在尝试向/pc repair dallas tx computer services/发出请求,但PHP文件实际上没有加载

PHP正在工作,并且启用了短代码。 我不是一个PHP开发人员,所以我不喜欢这里的元素,但如果您能给我一些建议,让这些相对URL正常工作,我将不胜感激。它们在整个现场都被破坏了。(例如/about/special-offers/不加载,但/about/special-offers.php加载)

因此,我需要遵循的方向似乎是.htaccess文件中的重写规则。现在,对每个文件都这样做似乎是毫无意义的,所以我尝试编写一个规则,自动将/page指向/page.php。以下是我到目前为止在.htaccess中获得的内容

php_value short_open_tag 1
Options +MultiViews

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.php [NC,L]
</IfModule>
php\u值短\u打开\u标记1
选项+多视图
重新启动发动机
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^([^\.]+)$$1.php[NC,L]
编辑:


我现在可以使用所需的URL方案访问我的文件。最后一个问题存在于顶部的代码中,当请求的URL位于server.com/admin/

时,它不包括admin.php。您可以访问
/about/special offers/
URL,并期望服务器返回
/about/special offers.php
,至少,除非在.htaccess文件中指定了正确的重写规则。只需使用扩展名为
/about/special offers.php的URL即可

如果您想避免在URL中使用PHP文件扩展名,请在Apache中寻找重写引擎

在您的特定情况下,我将确保在您的服务器配置上启用了
mod_rewrite
模块,并将以下
.htaccess
添加到项目的根目录中:

RewriteEngine On
RewriteRule ^about\/special-offers\/?$ about/special-offers.php

以下是您可能感兴趣的文章:

什么东西没有加载/工作?你是说你的
条件没有返回true?
$\u服务器['REQUEST\u URI']
中有什么内容?访问链接/about/special offers/应返回页面/about/special-offers.php,但不返回任何内容。请求URI只包含请求的URL,不包括服务器根目录(例如google.com/a/b/is just/a/b/),这似乎是我需要采取的方向。非常感谢。我试图以编程方式解决这个问题,并自动附加.php,但找不到404。My.htaccess是
php\u value short\u open\u标记1选项+重写cond%{REQUEST\u FILENAME}上的多视图重写引擎-已重写COND%{REQUEST_FILENAME}-f RewriteRule^([^\.]+)$$1.php[NC,L]
@JoeHoward尝试删除多视图选项