1

最近我在我的网站管理员工具中看到一些随机网站链接到我的网站。其实这不是什么大问题。.htaccess当由于我的文件而链接的页面不是真实页面时,就会出现问题。

这是.htaccess我正在运行的代码:

#Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([^/\.]+)/?$ index.php?id=$1 [L]
RewriteRule ^([0-9]+)/(.*)$ index.php?id=$1 [L]

所以真正的 URL 是:

mysite.com/folder/999/TITLE-OR-NAME

但是因为我只检查第一个文件夹$1,它是一个数字 ID,所以这个.htaccess文件允许黑客使用随机 URL 链接到我的网站,例如:

mysite.com/folder/999/TITLE-OR-NAME1
mysite.com/folder/999/TITLE-OR-NAME2
mysite.com/folder/999/TITLE-OR-NAME3
mysite.com/folder/999/TITLE-OR-NAME4
mysite.com/folder/999/TITLE-OR-NAME5

当谷歌告诉我我在复制内容时,最糟糕的部分来了!!!

实际上我不是在复制内容,.htaccess而是在为我复制它。是的,我知道,我是一个糟糕的新手程序员,但我非常感谢你在这方面的帮助,因为我正在努力寻找解决方案,但它永远不会奏效。

4

1 回答 1

0

您可能需要稍微调整一下,但应该让您接近:

RewriteRule ^([0-9]+)/([A-Za-z]*)([0-9]*)$ [R=404,L,NC]
RewriteRule ^([0-9]+)/(.*)$ index.php?id=$1 [L]

R=404 表示如果遇到这种情况并且不再执行任何重写命令 (L),则抛出 404。NC 表示不区分大小写。

为固定 URL 编辑: 这将转到每个固定页面,所有未列出的页面将转到 404。换句话说,它将检查 foo,然后检查 bar,依此类推,直到遇到结束情况;一个无效的 url,然后是 404。

RewriteRule ^([0-9]+)/(FOO){1}$ index.php?id=$2 [L]
RewriteRule ^([0-9]+)/(BAR){1}$ index.php?id=$2 [L]
...
RewriteRule ^([0-9]+)/(.*)$ [R=404,L,NC]
于 2012-11-29T23:29:48.670 回答