相对 URL 未加载 PHP 文件,但精确 URL 加载
Relative URL not loading PHP file, but exact URL does
相关代码:
if(strpos($_SERVER['REQUEST_URI'],'/admin/') === 0 ){
include_once 'admin.php';
exit;
}
if(strpos($_SERVER['REQUEST_URI'],'pc-repair-') !== FALSE && strpos($_SERVER['REQUEST_URI'],'-computer-services') !== FALSE ){
include_once 'locations/default.php';
exit;
}
include_once 'inl/head.php';
现场示例link:
<a href="/about/special-offers/">Special offers</a>
正在尝试向 /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 ^([^\.]+)$ .php [NC,L]
</IfModule>
编辑:
我现在可以使用所需的 URL 方案访问我的文件。最后一个问题出在顶部的代码中,当请求的 URL 在服务器上时,它不包括 admin.php。com/admin/
您不能访问 /about/special-offers/
URL 并期望您的服务器 return /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
以下是您可能感兴趣的文章:mod_rewrite: A Beginner’s Guide to URL Rewriting
相关代码:
if(strpos($_SERVER['REQUEST_URI'],'/admin/') === 0 ){
include_once 'admin.php';
exit;
}
if(strpos($_SERVER['REQUEST_URI'],'pc-repair-') !== FALSE && strpos($_SERVER['REQUEST_URI'],'-computer-services') !== FALSE ){
include_once 'locations/default.php';
exit;
}
include_once 'inl/head.php';
现场示例link:
<a href="/about/special-offers/">Special offers</a>
正在尝试向 /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 ^([^\.]+)$ .php [NC,L]
</IfModule>
编辑:
我现在可以使用所需的 URL 方案访问我的文件。最后一个问题出在顶部的代码中,当请求的 URL 在服务器上时,它不包括 admin.php。com/admin/
您不能访问 /about/special-offers/
URL 并期望您的服务器 return /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
以下是您可能感兴趣的文章:mod_rewrite: A Beginner’s Guide to URL Rewriting