【发布时间】:2020-05-30 21:37:28
【问题描述】:
我目前正在编写一个网站,简而言之,它通过 url 参数和 php 包含动态加载其内容。该网站位于根目录下名为“saischek”的子文件夹中。
url 有一个可选参数:page,因此 url 可以如下所示:
localhost/saischek/index.php?page=accounting
localhost/saischek/index.php
我希望我的网址看起来像这样:
localhost/saischek/accounting
localhost/saischek/home <- if the url parameter _page_ isn't given
我的 .htaccess 文件目前位于子目录“saischek”中,如下所示:
RewriteEngine on
RewriteRule ^saischek/([a-zA-Z0-9_-]+)$ saischek/index.php?page=$1
该网站在 apache 网络服务器上运行,“httpd.conf”文件中的所有必要更改都已完成并正常工作。
【问题讨论】:
-
那么如果在请求的 URL
http://localhost/saischek/home中只有两个参数中的一个被“声明”了,那么会发生什么?逻辑应该如何决定什么是“文件夹”或“页面”? -
这个想法是 index.php 文件根据给定的两个参数“文件夹”和“文件”决定将哪些内容加载到 html 中。因此,如果仅声明“文件”,我有一个包含,它在“saischek”文件夹中搜索该文件并包含它。如果只给出“文件夹”,它会在“saischek”中查找文件夹并加载其 index.php 文件。如果两者都给出,它会加载声明的文件夹文件。如果没有给出“文件夹”和“文件”,它会加载一个名为“home.php”的文件。代码运行良好,只是重写为更好的 url 不起作用。
-
你没有回答我的问题...
-
对不起,我不完全理解你的问题。 “逻辑应该如何决定“文件夹”或“页面”的含义是什么意思?正如所写的那样,逻辑是一个 php 脚本,它知道如何处理这两个 url 参数“页面”和“文件夹”以及如何将内容包含到 html 中。
-
您自己的描述包含这样的内容:“
localhost/saischek/accounting一个 URL:文件夹或页面。从 URL 的语法来看,不清楚它是哪一个。那么重写逻辑应该如何知道呢?在您自己的示例中,“会计”是文件夹还是页面?
标签: php apache .htaccess mod-rewrite url-rewriting