【发布时间】:2011-06-01 10:29:41
【问题描述】:
这是我第一次尝试重写 URL 和文件访问限制规则。我已经阅读了堆栈和谷歌中的相关帖子,但到目前为止未能获得完整的答案。到目前为止,网络上的所有研究信息似乎都是零碎的,总是缺少一些关键步骤。
像我这样的新手发现很难将这些点联系起来,所以我求助于stackoverflow 的大师寻求帮助。
我将列出到目前为止我已采取的所有步骤,如果有人可以指导我做错了什么,我将永远感激不尽。也许我的一步一步的描述将有助于其他人在未来寻找相同的答案。
Apache 配置
1) 在httpd.conf 文件@conf 文件夹中取消注释
LoadModule rewrite_module modules/mod_rewrite.so行。2) 通过使用 phpinfo() 函数显示 php 摘要详细信息并搜索字符串“mod_rewrite”来检查 mod_rewrite 是否已加载。
我想要实现的目标
[网址重写]
**from** : www.domain.com/listing.php?
category=men+casual+pant&title=blue+office+pant&item_ID=123
**to** : www.domain.com/category/men/casual/pant/blue-office-pant_123.html
[限制以下文件的直接访问]
**restrict file** /htdocs/bg_addEditItem.php from direct URL access typing
到目前为止我做了什么,但没有任何效果
1) 创建一个 .htaccess 文件并将其放在 /htdocs 文件夹中,内容如下
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^category/$1/$2/$3/$4-$5-$6_$7 listing.php?&category=([a-z]+)-([a-z]+)-([a-z]+)&title=([a-z]+)+([a-z]+)+([a-z]+)item_ID=([0-9]+)
2) 目前我使用 session_id 和 HTTP-referrer 的组合来拒绝直接访问 bg_addEditItem.php 文件,但我认为必须有一个更简单的方法,将所有受保护的文件放在一个文件夹中并设置不同的 @987654326 @ 文件。有人可以展示这是如何完成的吗?我访问此文件的方法来自表单的帖子。
非常感谢。
【问题讨论】:
标签: apache .htaccess mod-rewrite