.htaccess:内部重写到子文件夹,拒绝通过子文件夹进行访问

r

在我的页面上,我将silverstripe框架安装在一个子文件夹中current我有两个.htaccess文件可从URL中删除“当前”目录。一个根本:

根htaccess:

AddOutputFilterByType deflate text/html text/plain text/css text/javascript application/javascript application/x-javascript application/rss+xml
# Deployment scripts
RewriteCond %{REQUEST_FILENAME} /deploy/
RewriteRule ^(.*)$ $1 [L]


### SILVERSTRIPE START ### 
# See: http://www.silverstripe.org/installing-silverstripe/show/12328#post283997
<IfModule mod_rewrite.c> 
  RewriteEngine On 
  RewriteBase /current/
  RewriteRule ^(.*)$ /current/$1 
</IfModule> 
### SILVERSTRIPE END ###

AddHandler application/x-httpd-php54 .php

并在该current文件夹中放置一个

### SILVERSTRIPE START ###
<Files *.ss>
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Files>

<Files web.config>
    Order deny,allow
    Deny from all
</Files>

ErrorDocument 404 /assets/error-404.html
ErrorDocument 500 /assets/error-500.html

<IfModule mod_alias.c>
    RedirectMatch 403 /silverstripe-cache(/|$)
</IfModule>

<IfModule mod_rewrite.c>
    SetEnv HTTP_MOD_REWRITE On
    RewriteEngine On
    RewriteBase '/'

    RewriteCond %{REQUEST_URI} ^(.*)$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule .* framework/main.php?url=%1&%{QUERY_STRING} [L]
</IfModule>
### SILVERSTRIPE END ###

此设置的问题在于,该站点可以作为domain.comdomain.com/current使用。

我如何禁止/拒绝通过current目录的访问

最好的解决方案是外部重定向到同一页面,但currentURL中没有。如何在没有URL当前目录的情况下创建到站点的重定向?

因此,所有URL都将被重写(外部),如下所示:

  • domain.com/current-> domain.com
  • domain.com/current/example-> domain.com/example
  • domain.com/current/what/ever/-> domain.com/what/ever

到目前为止,我已经找到了这个答案:Url将子文件夹重写为root并禁止访问该子文件夹在我的情况下,该解决方案似乎无法正常工作。如果使用此解决方案访问该页面,则会收到403错误和一个附加错误500,因为找不到该错误文档。

阿努巴瓦

我如何禁止/拒绝通过当前目录的访问?

将此规则作为第一个规则插入/current/.htaccess

# if direct request is made for /current/abc then external redirect to /abc
RewriteCond %{THE_REQUEST} \s/current/(\S*) [NC]
RewriteRule ^ /%1  [L,R=301,NE]
  • THE_REQUEST 变量表示Apache从您的浏览器收到的原始请求,在执行某些重写规则后不会被覆盖。
  • 此规则将禁止您的用户发送任何直接的/current/URI请求

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

.htaccess,将字典重写到内部的子文件夹

来自分类Dev

htaccess将子域重写到文件夹

来自分类Dev

使用 .htaccess 拒绝访问子文件夹和文件

来自分类Dev

从特定的子文件夹重写htaccess

来自分类Dev

htaccess重写子文件夹?

来自分类Dev

IIS 域重写到子文件夹(仅限主页)

来自分类Dev

htaccess url-将特定文件重写到子文件夹

来自分类Dev

限制通过htaccess访问某些文件夹及其子文件夹的最佳方法

来自分类Dev

Htaccess 将子文件夹重写为子域

来自分类Dev

使用htaccess拒绝访问css /和js /文件夹或重定向/重写到index.html

来自分类Dev

htaccess将子文件夹(第二级)中的文件重写到文件夹(第一级)

来自分类Dev

如何拒绝用户访问子文件夹和文件?

来自分类Dev

htaccess将网址页面重写到文件夹

来自分类Dev

htaccess用参数在子文件夹中重写

来自分类Dev

在子文件夹中用.htaccess重写不起作用

来自分类Dev

如何使用.htaccess重写子文件夹

来自分类Dev

子文件夹的htaccess重写规则(漂亮的url)

来自分类Dev

.htaccess将URL重写为模拟的子文件夹

来自分类Dev

.htaccess重写未知子文件夹的规则

来自分类Dev

htaccess重写不起作用的子文件夹

来自分类Dev

在子文件夹中用.htaccess重写不起作用

来自分类Dev

如何在子文件夹中用“ .htaccess”重写链接?

来自分类Dev

.htaccess将父文件夹重写为子文件夹

来自分类Dev

.htaccess将父文件夹重写为子文件夹

来自分类Dev

如何在我的子文件夹中进行重写

来自分类Dev

拒绝访问我的网页上的子文件夹

来自分类Dev

不要重写特定的子文件夹

来自分类Dev

子文件夹的PHP / Apache重写

来自分类Dev

子文件夹索引的重写规则

Related 相关文章

热门标签

归档