php - 将“href”内容连接到现有 URL 的HTML链接
问问题
57 次
1 回答
1
当您将带有单个index.php
端点(有时也称为Front Controller)的 URL 布局从 query-info-part ( ) 迁移(更改)?action=<page-name>
到 path-part (在 PHP 中通常使用$_SERVER['PATH_INFO']
)并引入其他路径组件时,您可以看到这种行为。它是 URL 解析规则的标准。
query-info -> path effect
index.php -or- ?, ., "" -> index.php 0 new path components
?action=imageGallery -> index.php/imageGallery + 1 new path component
?action=addImage -> index.php/addImage + 1 new path component
在您非常具体的情况下以简化迁移,您可能需要考虑快速解决方法:如果没有PATH_INFO
给出,则重定向到与其他两个页面具有相同数量的路径组件的主页。
if (empty($_SERVER['PATH_INFO'])) {
header('location: index.php/mainPage');
echo '<!DOCTYPE html><title>moved</title><h1>moved</h1><a href="index.php/mainPage">here</a>.';
return;
}
<a href="mainPage" > Main page </a>
<a href="imageGallery" > Gallery </a>
<a href="addImage" > Add image </a>
或类似的,替换index.php/mainPage
为index.php/
which 可能对您的情况有更好的语义:
<a href="./" > Main page </a>
<a href="./imageGallery" > Gallery </a>
<a href="./addImage" > Add image </a>
对于最后两个,./
严格来说前缀不是必需的,这是等效的:
<a href="./" > Main page </a>
<a href="imageGallery" > Gallery </a>
<a href="addImage" > Add image </a>
这可以让您更好地了解 URL 布局更改的后果,同时保持您的网站正常工作。
对于基本的基本理解,我强烈建议您研究 URL 解析规范,因为这是非常基础的东西,它将帮助您自行决定 URL 布局更改以及您希望如何处理 HTML 文档以及您的服务器端脚本和整体应用程序。
于 2021-10-29T16:39:05.973 回答