可能是一个菜鸟问题,但我刚刚开始玩apache并且还没有找到准确的答案。
我正在使用网址重写大量设置网络应用,以显示不错的网址,例如[mywebsite.com/product/x],而不是[mywebsite.com/app/controllers/product.php?id=x]。
但是,我仍然可以通过输入网址[mywebsite.com/app/controllers/product.php?id=x]来访问所需的网页。我想让它变得不可能,即。如果他们这样做,将人们重定向到错误页面,并允许他们仅使用“重写”语法访问此页面。
最简单的方法是什么?你认为这是保护应用程序的必要措施吗?
答案 0 :(得分:2)
在PHP文件中,检查$_SERVER['REQUEST_URI']
并确保按照您希望的方式访问它。
没有理由认为这应该是一个安全问题。
答案 1 :(得分:0)
RewriteCond %{REDIRECT_URL} ! ^/app/controllers/product.php$
RewriteRule ^app/controllers/product.php$ /product/x [R,L]
RewriteRule ^product/(.*)$ /app/controllers/product.php?id=$1 [L]
第一条规则会将任何请求重定向到/app/controllers/product.php
,而不会将REDIRECT_URL
变量设置为清除网址。