【问题标题】:.htaccess Root Rewrite Without Folders.htaccess 没有文件夹的根重写
【发布时间】:2015-05-18 03:01:38
【问题描述】:

我花了无数小时寻找类似的问题,并找到了对我不起作用的解决方案。我有一个带有 'id' GET 变量的 index.php,可以将页面动态加载为 mydomain.com/[idVariableHere]

我的 .htaccess 代码有效:

RewriteEngine On
RewriteBase /

RewriteRule ^(js|css|images)($|/) - [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^/]+)/?$ /index.php?id=$1 [L,QSA]

但是,它不会阻止显示 /js/、/css/ 和 /images/ 文件夹。它干扰了最后一个 RewriteRule,我不知道如何解决这个问题。

我的目标是保持 mydomain.com/[idVariableHere] 的外观,并限制这些重要文件夹。请帮忙。

【问题讨论】:

    标签: php apache .htaccess mod-rewrite


    【解决方案1】:

    这样吧:

    ErrorDocument 404 default
    ErrorDocument 403 default
    
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]+)/?$ index.php?id=$1 [L,QSA]
    

    【讨论】:

    • 该死。没用……其实和之前的效果一模一样。很近! :-(
    • 什么不起作用?你在浏览器中输入了什么网址?在 chrome 开发工具中测试,看看哪个 URL 导致了 404?
    • 抱歉含糊了!好吧,当我输入链接到 mydomain.com/index.php?id=contact 的 mydomain.com/contact 时,最后一个 RewriteRule 起作用了,但是当我访问 mydomain.com/images 时,它加载了 index.php 的布局但正文的页面是白色的。我认为它正在加载 /images.php (不存在)而不是 /images/ 文件夹。
    • 您有一个名为images.php 的文件吗? /images/ 中是否有任何 .htaccess?上面的.htaccess中还有更多规则吗?
    • images.php 不存在且 /images/ 中没有 .htaccess。这都位于根目录中。我创建的其他文件夹(如 /videos/)也会出现同样的问题。如果我访问 mydomain.com/videos/,我希望看到 /videos/ 的实际索引,但最后一个 RewriteRule 似乎取代了 mydomain.com/index.php?id=videos(/videos.php,它没有存在)。
    【解决方案2】:

    据我了解,您希望使用 .htaccess 来阻止访问 /js/、/css/ 和 /images/ 文件夹。假设这些是在根目录中找到的。只需使用以下代码在每个文件夹中创建一个 .htaccess 文件:

    deny from all
    

    摘自:

    deny direct access to a folder and file by htaccess

    【讨论】:

    • 你是对的,但是我的最后一个 RewriteRule 似乎仍然可以通过加载我的 index.php 来运行,因为它认为被阻止的文件夹是 _GET['id'] 变量。这个解决方案对我不起作用。 :-(
    • 我希望澄清我的答案。删除当前的 .htaccess 文件并在以下文件夹中创建 3 个单独的 .htaccess 文件:/js/、/css/ 和 /images/。然后您可以访问您的根文件,但阻止访问其他文件。默认情况下,apache 会阻止任何更高的访问权限。
    • 如果我这样做,我将失去对 mydomain.com/[idvariable] 的重写
    猜你喜欢
    • 2011-09-13
    • 2021-11-20
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 2015-09-27
    相关资源
    最近更新 更多