0

我想知道我是否可以在 .htaccess 中重写我的网址。由于使用查询字符串,我的网站容易受到黑客攻击。我当前的网站网址结构如下所示:

www.mysite.com/index.php?page=about.php
www.mysite.com/index.php?page=services.php
www.mysite.com/index.php?page=home.php

如何在 .htaccess 文件中替换我的“index.php?page=”,以便访问者只能访问这样的页面:“www.mysite.com/service.php”、“www.mysite.com/about.php “ ETC

如果您能在这方面帮助我,我将不胜感激。

4

1 回答 1

1

一揽子解决方案是进行通配符匹配,但这只是进行了重写,并没有解决安全问题。

RewriteEngine On
RewriteRule ^index.php?page=(.*)$ /$1.php [NC]

为了进一步锁定事情,您可以在重写时具体化:

RewriteEngine On
RewriteRule ^index.php?page=about.php$ /about.php [NC]
RewriteRule ^index.php?page=services.php$ /services.php [NC]
RewriteRule ^index.php?page=home.php$ /home.php [NC]

此方法需要更多的手动干预,但如果您没有很多页面,这可能是一个可行的折衷方案。如果您需要手动重写的页面数量是无法管理的,那么您需要在 PHP 脚本中使用逻辑来补充这一点。

有关如何使用 Apache 重写规则的完整概要,我建议阅读官方文档

于 2013-08-12T13:46:56.573 回答