【问题标题】:htaccess Challenge: rewrite perfection for secure website structurehtaccess 挑战:为安全的网站结构重写完美
【发布时间】:2011-09-08 18:08:50
【问题描述】:

我正在开发一个新项目,我想通过使用 2 级文件夹来提高安全性。 “Core”文件夹包含所有文件夹,包括“public”文件夹,该文件夹必须是访问者可以访问的唯一文件夹。

关于我的 webdir 的简短介绍:

网络目录
 | - .htaccess(核心)
 | - 课程
 | - 职能
 | - 民众
      | - .htaccess(公共)
      | -CSS
      | - 文件
          | - 德
          | - zh
          | - 一般的
          | -nl
      | - 图片
      | - 索引.php
      | - js
      | - 瑞士法郎
 | - 模板

供您参考:

  • 我的 public/index.php 文件通过 [geturl] 和 [section] 整理出文件位于哪个部分。请求“http://example.com/nl/openfile”指向:

    public/index.php

  • 此文件读取 $_GET 并在 [section] "nl" 中看到 [geturl] 是 "openfile"

    public/index.php要打开:“files/nl/openfile.php”

  • 这就是它的工作原理,我希望它能够工作!

我想用我的 .htaccess 实现以下目标:

我当前的 .htaccess 文件:

.htaccess(核心)

<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymLinks
Options -Indexes 

RewriteCond %{HTTP_HOST} ^customer.com$ [NC]
RewriteRule ^(.*)$ http://www.customer.com/$1 [R=301,L]

RewriteRule ^company(.*)$ public/$1?section=company [L]

RewriteCond %{QUERY_STRING} (.*)
RewriteRule !(nl|en|de)/(.*).*  /webdir/nl/ [R=301,L]           # IF NO LANG ISSET THAN NL REDIRECT
RewriteRule ^error(.*).*        public/?getpage=error&%1 [PT,L]
RewriteRule ^(nl|en|de)/(.*).*  public/$2?section=$1&%1 [L]
</IfModule> 

.htaccess(公共)

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{QUERY_STRING} (.*)
    RewriteRule ^(.*).* index.php?geturl=$1&%1 [PT,L]
</IfModule>

我做错了什么以及如何改进 .htaccess 文件?

总结一下,我希望 .htaccess 执行以下操作:

【问题讨论】:

    标签: php security .htaccess mod-rewrite directory


    【解决方案1】:

    你知道你可以通过将.htaccessdeny from all 放在里面来阻止整个目录吗?

    这样您可以使您的项目结构更简单、更便携。

    【讨论】:

    • 我知道这是可能的,但是当我这样做时,我无法访问该文件夹中的任何文件。此外,当我在公用文件夹中拒绝所有人时,网站无法访问。
    • 当然你不会把它放在公共文件夹中,只是放在你的类目录中
    • 好的,现在我知道你要去哪里了。谢谢你的回答,但它并没有解决我上面描述的问题..
    猜你喜欢
    • 2012-02-14
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 2023-03-17
    • 2022-06-14
    • 2020-08-29
    相关资源
    最近更新 更多