URL重写子根,禁止访问的子文件夹

编程入门 行业动态 更新时间:2024-10-27 10:26:26
本文介绍了URL重写子根,禁止访问的子文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我已经Drupal的安装在一个子文件夹中的的Drupal ,但我想访问的页面,因为它是在根文件夹: www.example 代替 www.example/drupal

我能有这个工作,但它也有网址的工作包含子文件夹,所以我的 www.example 并克隆网站的 HTTP: //www.example/drupal

什么是规则禁止访问的子文件夹?

我希望所有的url开头的 www.example/drupal 被禁止的。

这是的.htaccess 在/目录下:

选项-Indexes 选项​​+的FollowSymLinks < IfModule mod_rewrite.c>   RewriteEngine叙述上   的RewriteCond%{HTTP_HOST} ^ WWW \。(。+)$ [NC]   重写规则^的http://%1%{REQUEST_URI} [L,R = 301]   重写规则^(。* +)$的Drupal / $ 1 [L,QSA] < / IfModule>

这是Drupal的的.htaccess 在/ Drupal的/目录:

选项-Indexes 选项​​+的FollowSymLinks 的ErrorDocument 404的index.php DirectoryIndex的index.php文件的index.html index.htm的 #不能在运行时改变覆盖PHP的设置。看到 在#网站/默认/ default.settings.php和drupal_initialize_variables() #包括/ bootstrap.inc文件的,可以在运行时改变设置。 #PHP 5中,阿帕奇1和2。 < IfModule mod_php5.c>   的php_flag magic_quotes_gpc的关   的php_flag magic_quotes_sybase关闭   的php_flag register_globals的关闭   的php_flag session.auto_start关闭   php_value合格的mbstring.http_input   php_value的mbstring.http_output通   的php_flag关闭的mbstring.encoding_translation < / IfModule> #要求mod_expires被激活。 < IfModule mod_expires.c>   #开启到期。   ExpiresActive在   #缓存的访问后,所有文件2周(A)。   ExpiresDefault A1209600   < FilesMatch \ .PHP $>     #不要让PHP脚本被缓存,除非他们明确地发送缓存     #头自己。否则,所有的脚本必须覆盖     #头通过mod_expires设置,如果他们想要另一个缓存行为。这可能     #如果早发生在引导过程中的错误而失败,并可能会导致     #问题,如果一个非Drupal的PHP文件被安装在一个子目录中。     ExpiresActive关闭   < / FilesMatch> < / IfModule> #各个重写规则。 < IfModule mod_rewrite.c>   RewriteEngine叙述上   #阻止访问隐藏,其名称以期目录。本   #包括使用版本控制系统,如颠覆或目录   #Git的存储控制文件。文件名称开头一段,以及   #所使用的CVS控制文件,由FilesMatch指令保护   # 以上。   重写规则(^ | /)\。 - [F]   #重定向所有用户访问该网站的WWW。 preFIX,   #(HTTP://example / ...将被重定向到http://www.example / ...)   #取消以下:   #的RewriteCond%{HTTP_HOST}!^ WWW \。 [NC]   #重写规则^的http://www.% {HTTP_HOST}%{REQUEST_URI} [L,R = 301]   #   #重定向所有用户访问该网站没有WWW。 preFIX,   #(HTTP://www.example / ...将被重定向到http://example / ...)   #取消以下:   的RewriteCond%{HTTP_HOST} ^ WWW \。(。+)$ [NC]   重写规则^的http://%1%{REQUEST_URI} [L,R = 301]   的RewriteBase / Drupal的   #将所有请求传递不直接引用文件中的文件系统   #index.php文件。清洁网址在drupal_environment_initialize处理()。   的RewriteCond%{} REQUEST_FILENAME!-f   的RewriteCond%{} REQUEST_FILENAME!-d   的RewriteCond%{REQUEST_URI}!= /的favicon.ico   #RewriteRule ^的index.php [L]   重写规则^(。*)$的index.php?Q = $ 1 [L,QSA]   #规则正确地服务​​于gzip的COM pressed CSS和JS文件。   #需要启用mod_rewrite的双方和mod_headers中。   < IfModule mod_headers.c>     #如果存在的话,客户接受GZIP即成gzip的COM pressed CSS文件。     的RewriteCond%{HTTP:接受编码} GZIP     的RewriteCond%{REQUEST_FILENAME} \。GZ -s     重写规则^(。*)\。CSS $ 1 \的.css \ .gz的[QSA]     #即成gzip的COM pressed JS文件,如果存在的话,客户接受GZIP。     的RewriteCond%{HTTP:接受编码} GZIP     的RewriteCond%{REQUEST_FILENAME} \。GZ -s     重写规则^(。*)\。JS $ 1 \ .js文件\ .gz的[QSA]     #即成正确的内容类型和prevent mod_deflate模块双GZIP。     重写规则\的.css \ .gz的$ - [T =文本/ CSS,E =无gzip压缩:1]     重写规则\ .js文件\ .gz的$ - [T =文/ javascript中,E =无gzip压缩:1]     < FilesMatch(\ .js文件\。广州| \的.css \。广州)$>       #即成正确的编码类型。       头追加内容编码的gzip       #强制代理来高速缓存gzip压缩和放大器;另外非gzip压缩的CSS / JS文件。       头追加因人而异接受编码     < / FilesMatch>   < / IfModule> < / IfModule>

解决方案

我解决了这个在在加入后 RewriteEngine叙述这两行 / Drupal的/的.htaccess :

#拒绝访问的URL开始/ Drupal的/ 的RewriteCond%{THE_REQUEST} ^([AZ] {3,9})\ / Drupal的/ 重写规则。* - [F,L]

使用的 R = 403 避免问题的​​Drupal未找到的处理程序:的ErrorDocument 404的Drupal / index.php文件

I have drupal installed in a subfolder drupal, but I want to access pages as it is in root folder: www.example instead of www.example/drupal

I'm able to have this working, but it's also working with url containing subfolder, so I have www.example and a clone site in www.example/drupal

What is the rule to forbid access to subfolder?

I want all url starting with www.example/drupal being forbidden.

This is .htaccess in / directory:

Options -Indexes Options +FollowSymLinks <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^ %1%{REQUEST_URI} [L,R=301] RewriteRule ^(.*+)$ drupal/$1 [L,QSA] </IfModule>

And this is drupal .htaccess in /drupal/ directory:

Options -Indexes Options +FollowSymLinks ErrorDocument 404 index.php DirectoryIndex index.php index.html index.htm # Override PHP settings that cannot be changed at runtime. See # sites/default/default.settings.php and drupal_initialize_variables() in # includes/bootstrap.inc for settings that can be changed at runtime. # PHP 5, Apache 1 and 2. <IfModule mod_php5.c> php_flag magic_quotes_gpc off php_flag magic_quotes_sybase off php_flag register_globals off php_flag session.auto_start off php_value mbstring.http_input pass php_value mbstring.http_output pass php_flag mbstring.encoding_translation off </IfModule> # Requires mod_expires to be enabled. <IfModule mod_expires.c> # Enable expirations. ExpiresActive On # Cache all files for 2 weeks after access (A). ExpiresDefault A1209600 <FilesMatch \.php$> # Do not allow PHP scripts to be cached unless they explicitly send cache # headers themselves. Otherwise all scripts would have to overwrite the # headers set by mod_expires if they want another caching behavior. This may # fail if an error occurs early in the bootstrap process, and it may cause # problems if a non-Drupal PHP file is installed in a subdirectory. ExpiresActive Off </FilesMatch> </IfModule> # Various rewrite rules. <IfModule mod_rewrite.c> RewriteEngine on # Block access to "hidden" directories whose names begin with a period. This # includes directories used by version control systems such as Subversion or # Git to store control files. Files whose names begin with a period, as well # as the control files used by CVS, are protected by the FilesMatch directive # above. RewriteRule "(^|/)\." - [F] # To redirect all users to access the site WITH the 'www.' prefix, # (example/... will be redirected to www.example/...) # uncomment the following: # RewriteCond %{HTTP_HOST} !^www\. [NC] # RewriteRule ^ www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # # To redirect all users to access the site WITHOUT the 'www.' prefix, # (www.example/... will be redirected to example/...) # uncomment the following: RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^ %1%{REQUEST_URI} [L,R=301] RewriteBase /drupal # Pass all requests not referring directly to files in the filesystem to # index.php. Clean URLs are handled in drupal_environment_initialize(). RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !=/favicon.ico #RewriteRule ^ index.php [L] RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] # Rules to correctly serve gzip compressed CSS and JS files. # Requires both mod_rewrite and mod_headers to be enabled. <IfModule mod_headers.c> # Serve gzip compressed CSS files if they exist and the client accepts gzip. RewriteCond %{HTTP:Accept-encoding} gzip RewriteCond %{REQUEST_FILENAME}\.gz -s RewriteRule ^(.*)\.css $1\.css\.gz [QSA] # Serve gzip compressed JS files if they exist and the client accepts gzip. RewriteCond %{HTTP:Accept-encoding} gzip RewriteCond %{REQUEST_FILENAME}\.gz -s RewriteRule ^(.*)\.js $1\.js\.gz [QSA] # Serve correct content types, and prevent mod_deflate double gzip. RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1] RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1] <FilesMatch "(\.js\.gz|\.css\.gz)$"> # Serve correct encoding type. Header append Content-Encoding gzip # Force proxies to cache gzipped & non-gzipped css/js files separately. Header append Vary Accept-Encoding </FilesMatch> </IfModule> </IfModule>

解决方案

I solved this adding these two lines after RewriteEngine on in /drupal/.htaccess:

# deny access to url starting with /drupal/ RewriteCond %{THE_REQUEST} ^([A-Z]{3,9})\ /drupal/ RewriteRule .* - [F,L]

Using R=403 avoids problems with drupal "not found" handler: ErrorDocument 404 drupal/index.php

更多推荐

URL重写子根,禁止访问的子文件夹

本文发布于:2023-10-31 16:46:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1546683.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:重写   文件夹   URL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!