HTACCESS - 阻止指定SEO友好URL的所有内容

时间:2010-10-17 04:20:17

标签: .htaccess mod-rewrite url-rewriting

我还没有找到目前问题的所有答案。

以下是该网站的根目录:

  • 缓存
  • IMG
  • Display.php的
  • admin.php的

我需要的是阻止所有文件的直接访问,并且只允许通过以下格式的URL访问:

1 ht * p://sub.domain.com/image/param/size/folder/img.jpg(param,size,folder,img是参数)
2 ht * p://sub.domain.com/action/param1/param2/(param1,param2是参数)

1将指向具有正确参数
的display.php 2将指向具有正确参数的admin.php 每个其他访问必须是404(最多)或403

我的规则是(htaccess在ht * p://sub.domain.com/中):

RewriteRule ^image/([^/]+)/([0-9]+)/([^/]+)/([^/]+)\.jpg display.php?param=$1&size=$2&folder=$3&img=$4 [L]
RewriteRule ^action/([^/]+)/([^/]+) admin.php?action=$1&param=$2 [L]

这些规则可以按照我的意愿运行,但我仍然坚持如何阻止任何不是来自这些URL的访问!

另外(作为奖励)我希望能够在不同的网址上使用相同的htaccess,而无需更改此文件。

提前致谢

1 个答案:

答案 0 :(得分:0)

您是否尝试将图像移出公共文件夹并使用php来调用图像?

对于PHP文件,您可以使用switch语句(http://www.php.net/switch)。

对于admin.php文件,您可以执行以下操作:

$get_action = $_GET['action'];

switch ($get_action) {
    case "edit":
    case "view":
    case "delete":
    case "add":
        //Continue loading the page
        break;
    default:
       header('HTTP/1.1 403 Forbidden');
       die();
}

注意:我不知道您的代码的外观或工作方式,但您可以根据我添加的代码了解。