-2

我正在尝试制作一个动态页面,它将根据 URL 显示内容,但我想知道是否可以使 URL 对用户更具可读性。

所以我有一个名为 work.php 的页面,它将根据 URL 中传递的 ID 显示某项工作。所以 work.php?project=1 会显示项目 1。

有没有办法使用更像 www.website.com/work/projectname 的 URL 来实现相同的效果

4

3 回答 3

1

如果仅针对一个或两个特定脚本,您可以查看 Apache Rewrites 的工作方式,这将使其显示为 www.website.com/work/projectname 并且在后端表现得好像它是 work.php?project= 1

Here is an example:
# Turn on URL rewriting
RewriteEngine On
RewriteBase /
RedirectRule ^work.php?project=(.*) http://www.website.com/work/$1

如果这将是一个包含大量这些页面的项目,并且您不想编写大量这些规则,我建议您研究一个 MVC 框架,例如 Kohana、Yii 等来处理这个问题以及许多其他的东西给你。

于 2012-07-14T12:06:14.513 回答
1

看看这个:.htaccess 和 mod_rewrite for apache

然后你可以处理代表的网址$_SERVER['REQUEST_URI']

** 附录 **

例如我在.htacess文件中使用这样的东西:

Options +FollowSymLinks
IndexIgnore */*
# Turn on the RewriteEngine
RewriteEngine On
RewriteBase /
#  Rules
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

因此,我将始终确定index.php解析 URI 的位置,并将其用作我的页面的分发器和路由器。

于 2012-07-14T11:38:10.557 回答
0

您必须创建一个名为 .htaccess 的文件(仅此而已)。将此文件与网站的其他文件放在同一文件夹中。您可能必须打开“显示隐藏文件”才能在创建文件时看到它。

在 .htaccess 中你可以这样写:

RewriteRule 上的 RewriteEngine ^work/([a-zA-Z0-9_-]+)$ work.php?product=$1

此代码将为您提供工作/1

于 2012-07-14T11:59:08.037 回答