【问题标题】:htaccess redirect on index file when try to access dirhtaccess 在尝试访问目录时重定向索引文件
【发布时间】:2014-02-01 19:33:25
【问题描述】:

试图拒绝访问除 index.pl 之外的所有文件。首先我拒绝所有,然后允许访问 index.pl。下一个代码可以正常工作。

Order Allow,Deny
Deny from all
<Files "index.pl">
    Order Deny,Allow
    Allow from all
</Files>

但是在添加带有此内容的 .htaccess 文件后出现以下问题: 当我尝试访问 mysite.com/(没有 index.pl)时,服务器说它是被禁止的。

我尝试添加DirectoryIndex index.pl,代码变成了这样:

Order Allow,Deny
Deny from all
<Files "index.pl">
    Order Deny,Allow
    Allow from all
</Files>

DirectoryIndex index.pl

这对我没有帮助。

我必须在文件中写入什么来限制除 index.pl 之外的所有文件,并且站点可以在不添加 /index.pl 链接的情况下正常工作?也许还有另一种方法可以做我想做的事?

【问题讨论】:

    标签: perl apache .htaccess


    【解决方案1】:

    使用mod_rewrite 规则进行更精细的控制。在您的 DOCUMENT_ROOT/.htaccess 文件中尝试此代码:

    RewriteEngine On
    
    RewriteCond %{REQUEST_URI} !\.(jpe?g|gif|bmp|png|tiff|css|js)$ [NC]
    RewriteRule ^(?!(index|search)\.pl).+$ - [F,NC]
    

    【讨论】:

    • 嗯 :) 谢谢!有用。现在也在搜索如何访问 .css 和 .js 文件:)。顺便说一句,有趣的 mod :) 将阅读更多关于它的内容并使链接更漂亮:) ty
    • 谢谢!您的代码有效!就1分钟。我刚刚在我的网站上添加了搜索功能,它使用的是根目录中的 search.pl 文件。我如何必须更新代码以允许访问此文件?
    【解决方案2】:

    尝试将您的 &lt;Files&gt; 块更改为 &lt;FilesMatch&gt; 并将 index.pl 设为可选:

    <FilesMatch "^(index.pl)?$">
        Order Deny,Allow
        Allow from all
    </FilesMatch>
    

    【讨论】:

    • 感谢您的回答!你的意思是只把这个代码放到.htaccess中吗?我刚刚尝试过,但对我没有用。
    • @SharikovVladislav 不,用上面的替换你的&lt;Files "index.pl"&gt; ... &lt;/Files&gt; 块,你仍然需要其他一切。
    • 我只是复制粘贴了你的代码,我删除了我的 .htaccess 的内容,我把你的代码粘贴到了。就这样。它没有帮助我
    • @SharikovVladislav 不要删除所有代码,只需替换 &lt;Files&gt; 部分,您仍然需要其余代码才能使其正常工作。您只需将这 4 行替换为上面的 4 行即可。
    • 糟糕!真的!我的错,对不起!你的代码也可以工作!谢谢你的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    相关资源
    最近更新 更多