【发布时间】:2013-04-26 09:41:22
【问题描述】:
我正在学习 .htaccess 上的 url 重写,有什么好书可以学习。
我正在构建一个 RESTfull 网络服务,并且正在使用漂亮的网址
现在我在 .htaccess 文件中编写了以下语法来实现其他 url。
RewriteRule ([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/users/([0-9a-zA-Z]) users.php?key=$1&format=$2&uid=$3
RewriteRule ([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/users users.php?key=$1&format=$2
示例 1
下面提到了我尝试过的网址和结果
e.g. http://localhost/site/key/format/users/user_id
http://localhost/rest/r123/json/users/pGQqAMbVQAFx
test.php
<?php print_r($_GET); ?>
并且只获取key 和format 的值而不是uid 和key 的值是php,我不知道php 值是如何产生的
输出。
Array
(
[key] => php
[format] => json
)
示例 2
http://localhost/rest/r123/json/users/
输出
Array
(
[key] => r123
[format] => json
)
除了 apache 文档之外,对于初学者来说,还有什么关于 url 重写的好书。
【问题讨论】:
-
试过了..不工作
-
专业提示: 不要为多个 URL 编写多个重写规则。为所有 URL 编写一个 RewriteRule。然后使用 PHP 脚本进一步解析传入的请求。
-
顺便说一句,您的问题描述有问题。 modrewrite 没有“错误值”之类的东西。该软件可以正常工作,并且记录了它的作用。因此,在网站上 99.9% 的案例中,不是 modrewrite 出错,而是用户在不理解的情况下使用它。并尝试围绕 apache 文档(根据它编写您自己的教程),它非常完整,应该是您的第一站。只是说,这就是我可以轻松地在多个服务器版本之间进行更改的方法(好吧,这不是真的:),但它确实有效)。
-
我不会撒谎我对为什么给出错误的值有点困惑。但是在研究了 URL 重写之后,我可以推荐一些您可能会觉得有用的好网站和/书籍。 Url Rewriting for Beginners (Online Resource) Some Examples You may find useful. [一本有用的书,我仍然在很多与 Apache 相关的 SEO 中使用它。 ](amzn.to/11pgwbF) 希望其中一些帮助以供将来参考,并且某些人能够帮助您我