首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

htaccess重写子域名到匹配文件夹包含下划线时抛出400错误

htaccess是Apache服务器上的一个配置文件,用于对网站的访问进行控制和重写规则的设置。在这个问答内容中,我们需要将子域名重写到匹配文件夹,但是如果文件夹名称中包含下划线时,会抛出400错误。

要解决这个问题,我们可以使用htaccess的RewriteRule指令来实现子域名的重写,并通过设置RewriteCond条件来避免400错误的发生。

下面是一个示例的htaccess配置:

代码语言:txt
复制
RewriteEngine On

# 检查是否为子域名
RewriteCond %{HTTP_HOST} ^([a-z0-9-]+)\.example\.com$ [NC]

# 检查文件夹是否存在
RewriteCond %{DOCUMENT_ROOT}/%1 -d

# 检查文件夹名称是否包含下划线
RewriteCond %{REQUEST_URI} !^/%1/

# 重写到匹配文件夹
RewriteRule ^(.*)$ /%1/$1 [L]

上述配置中,首先通过RewriteCond检查是否为子域名,并将子域名的名称捕获到%1变量中。然后,通过RewriteCond检查对应的文件夹是否存在。接着,通过RewriteCond检查请求的URI是否已经包含了文件夹名称,如果没有包含,则执行RewriteRule进行重写。

这样,当访问子域名时,htaccess会将请求重写到对应的文件夹中,同时避免了文件夹名称中包含下划线时抛出400错误的问题。

推荐的腾讯云相关产品:腾讯云服务器(https://cloud.tencent.com/product/cvm)和腾讯云CDN(https://cloud.tencent.com/product/cdn),它们提供了稳定可靠的云计算基础设施和内容分发网络,适用于各种网站和应用的部署和加速需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

由浅入深剖析.htaccess

1、.htaccess文件使用前提 .htaccess的主要作用就是实现url改写,也就是当浏览器通过url访问到服务器某个文件夹,作为主人,我们可以来接待这个url,具体地怎样接待它,就是此文件的作用...2、.htaccess基本语法介绍 开启重写引擎 :RewriteEngine on 设置重写的根目录:RewriteBase /     — 说明 :因为定义了这个文件夹,所以对应的替换就有了一个参照...举个例子,为了能让搜索引擎更多地抓取我们的网页而避免重复抓,我们通常把没有www的域名重定向www.XXX.com,如下就实现了这个功能: RewriteEngine On RewriteCond %...换行符以外的所有字符 \w匹配字母或数字或下划线或汉字 \s匹配任意的空白符 \d匹配数字 \b匹配单词的开始或结束 ^匹配字符串的开始 $匹配字符串的结束 *重复零次或更多次 *重复零次或更多次 +重复一次或更多次...重复零次或一次 {n}重复n次 {n,}重复n次或更多次 {n,m}重复nm次 应用替换,前面第一个()中匹配的内容后面就用1引用,第二个()中匹配的就用2应用…… 推荐一个实用的正则在线测试网站

4.9K40

WordPress || .htaccess 文件使用手册

通过 htaccess 文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。.../index.php [L] #把所有的请求指向 /index.php #结束 IfModule # END WordPress #WordPress 的 htaccess 这里结束 使用范例 设置错误页面...ErrorDocument 400 /error_pages/400.html ErrorDocument 401 /error_pages/401.html ErrorDocument 403 /error_pages...new_dir 目录 Redirect /old_dir/ http://www.yourdomain.com/new_dir/index.html #把通过二级目录访问的请求301重定向二级域名 RedirectMatch...* #仅不显示 .zip/.jpg/.gif 格式的文件 IndexIgnore *.zip *.jpg *.gif 设置文件夹首页 #防止显示文件夹列表,当访问文件夹,服务器查找 index.html

2K10

.htaccess 文件使用手册

通过 htaccess 文件,可以帮我们实现:网页 301 重定向、自定义 404 错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。.../index.php [L] #把所有的请求指向 /index.php #结束 IfModule # END WordPress #WordPress 的 htaccess 这里结束 使用范例 设置错误页面...ErrorDocument 400 /error_pages/400.html ErrorDocument 401 /error_pages/401.html ErrorDocument 403 /error_pages...new_dir 目录 Redirect /old_dir/ http://www.yourdomain.com/new_dir/index.html #把通过二级目录访问的请求 301 重定向二级域名...* #仅不显示 .zip/.jpg/.gif 格式的文件 IndexIgnore *.zip *.jpg *.gif 设置文件夹首页 #防止显示文件夹列表,当访问文件夹,服务器查找 index.html

5.1K40

.htaccess 文件使用手册

通过 htaccess 文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。.../index.php [L] #把所有的请求指向 /index.php #结束 IfModule # END WordPress #WordPress 的 htaccess 这里结束 使用范例 设置错误页面...ErrorDocument 400 /error_pages/400.html ErrorDocument 401 /error_pages/401.html ErrorDocument 403 /error_pages...new_dir 目录 Redirect /old_dir/ http://www.yourdomain.com/new_dir/index.html #把通过二级目录访问的请求301重定向二级域名 RedirectMatch...IndexIgnore * #仅不显示 .zip/.jpg/.gif 格式的文件 IndexIgnore *.zip *.jpg *.gif   设置文件夹首页 #防止显示文件夹列表,当访问文件夹,服务器查找

1.8K30

Apache之Rewrite和RewriteRule规则梳理以及http强转https的配置总结(完整版)

3.10) 'nosubreq|NS'(不对内部请求进行处理) 在当前请求是一个内部请求,此标记强制重写引擎跳过该重写规则。...比如,在mod_include试图搜索目录默认文件(index.xxx),Apache会在内部产生子请求。对于请求,重写规则不一定有用,而且如果整个规则集都起作用,它甚至可能会引发错误。...*是指匹配所有URL中不包含换行字符,()括号的功能是把所有的字符做一个标记,以便于后面的应用。$1就是引用前面里的(.*)字符。...http://%1%{REQUEST_URI} [R=301,L] 这里,当匹配到1%变量以后,域名才会在%2(内部原子)中抓取到,而我们需要的正是这个%1变量。...id=nnnn,不包含marker,所以被第一个规则永久重定向http://www.example.com/nnnn,第二个规则将http://www.example.com/nnnn反定向http

30.5K51

Apache中 RewriteRule 规则参数介绍

它可能与被请求的URL截然不同,因为其他规则可能在此之前已经发生匹配并对它做了改动。 Substitution是当原始URL与Pattern相匹配,用来替代(或替换)的字符串。...‘nosubreq|NS'(不对内部请求进行处理) 在当前请求是一个内部请求,此标记强制重写引擎跳过该重写规则。...比如,在mod_include试图搜索目录默认文件(index.xxx),Apache会在内部产生子请求。对于请求,重写规则不一定有用,而且如果整个规则集都起作用,它甚至可能会引发错误。...*是指匹配所有URL中不包含换行字符,()括号的功能是把所有的字符做一个标记,以便于后面的应用.就是引用前面里的(.*)字符。...http://%1%{REQUEST_URI} [R=301,L] 这里,当匹配到1%变量以后,域名才会在%2(内部原子)中抓取到,而我们需要的正是这个%1变量。

11.7K30

NginxApache之伪静态设置 - 运维小结

匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $...name=itboy&age=18 重写成 http://www.abc.com/parse-itboy-18.html 场景三(同一域名下,需要匹配随时新增的二三级目录,并隐藏index.php的....*匹配任意字符串,且长度从0个多个,故$1值为/; [0-9]+匹配字符0-9,长度1个多个,故$2和$3分别是123和456; 所以最后真实访问的动态地址为 /list.php?...img.clin003.com$ [NC] #且如果不是img.clin003.com所有域名调用的 RewriteCond %{HTTP_REFERER} !...,注:该图片不能在原域名下,也不能在该.htaccess文件有效控制的文件夹中 对配置做几点补充说明: L 表明当前规则是最后一条规则,停止分析以后重写 NC 不区分大小写 QSA 追加请求的字符串

11.1K61

21 个非常有用的 .htaccess 提示和技巧

Apache Web 服务器可以通过 .htaccess 文件来操作各种信息,这是一个目录级配置文件的默认名称,允许去中央化的 Web 服务器配置管理。可用来重写服务器的全局配置。...自定义错误页 ErrorDocument 404 errors/404.html 当用户访问页面报错,例如页面找不到你希望显示自定义的错误页面,你可以通过这种方法来实现。...控制访问文件和目录的级别 .htaccess 经常用来限制和拒绝访问某个文件和目录,例如我们有一个 includes 文件夹,这里存放一些脚本,我们不希望用户直接访问这个文件夹,那么通过下面的脚本可以实现...修改环境变量 环境变量包含了服务器端 CGI 的一些扩展信息,可使用 SetEnv 和 UnSetEnv 进行设置以及取消设置....username=$1 重定向某个域名一个 public_html 里新的文件夹: RewriteEngine On RewriteCond %{HTTP_HOST} ^test\.com$ [OR

1.5K30

Apache 中RewriteRule 规则参数

htaccess)配置都有效,还可以生成最终请求字符串。此重写操作的结果可以是内部处理,也可以是外部请求的转向,甚至还可以是内部代理处理。...它可能与被请求的URL截然不同,因为其他规则可能在此之前已经发生匹配并对它做了改动。 Substitution是当原始URL与Pattern相匹配,用来替代(或替换)的字符串。...‘nocase|NC’(忽略大小写) 它使Pattern忽略大小写,也就是在Pattern与当前URL匹配,‘A-Z’和‘a-z’没有区别。...‘nosubreq|NS‘(不对内部请求进行处理) 在当前请求是一个内部请求,此标记强制重写引擎跳过该重写规则。...比如,在mod_include试图搜索目录默认文件(index.xxx),Apache会在内部产生子请求。对于请求,重写规则不一定有用,而且如果整个规则集都起作用,它甚至可能会引发错误

3.4K20

Apache常用配置-运维笔记

通过对.htaccess文件进行设置,可以帮我们实现:网页301重定向、自定义400/403/404/500错误页面、改变文件扩展名、允许/阻止指定IP用户访问、禁止目录列表、配置默认文档等功能,可以说是功能非常强大...设置网站错误页面 ErrorDocument 400 /error_pages/400.html ErrorDocument 401 /error_pages/401.html ErrorDocument...new_dir 目录 Redirect /old_dir/ http://www.yourdomain.com/new_dir/index.html #把通过二级目录访问的请求301重定向二级域名 RedirectMatch...(gif|jpg|png)$ http://www.yourdomain.com/feed.jpg [R,L] 设置文件夹首页 #防止显示文件夹列表,当访问文件夹,服务器会查找index.html,.../index.php [L] #把所有的请求指向 /index.php #结束 IfModule # END WordPress #WordPress 的 htaccess 这里结束 Discuz

2.6K20

伪静态规则写法RewriteRule-htaccess详细语法使用

换行符以外的所有字符 \w  匹配字母或数字或下划线或汉字 \s  匹配任意的空白符 \d  匹配数字 \b  匹配单词的开始或结束 ^   匹配字符串的开始 $  匹配字符串的结束 *   重复零次或更多次...重复零次或一次 {n}  重复n次 {n,}  重复n次或更多次 {n,m}  重复nm次 应用替换,前面一个()中匹配的内容后面就用$1引用,第二个()中匹配的就用$2引用,,,,,, 这个()里面的东西叫原子组...分析一下discuz搜索引擎优化 htaccess里面的重写。...,如果满足列出的一系列RewriteCond的 条件那么就进行重写, discuz的没有列出RewriteCond 所以应该全部都进行重写。...^24\.121\.202\.30 RewriteRule $ http://www.hfxskyyj.com/upgrade.html [R=302,L] 4.3把老的域名转向新域名 # redirect

57630

Apache中的htaccess文件格式简析

这个在网站比较小的情况下看不出来,但是当网站结构复杂的时候,我们就需要对访问进来的域名进行分类处理了,比如构建二级域名、设置301重定向、404禁止访问的显示界面,设置权限、防止盗链等一系列工作,都需要有...概述 .htaccess文件(或者"分布式配置文件"(hypertext access))提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录...位置 理论上讲,.htaccess应该存在于站点能访问到的所有文件夹下,但是这样显然可能造成性能和安全上的问题。...URL地址 C Chain 将当前的规则和紧随其后的规则链接起来 T Type 强制执行指明的MIME类 NS Nosubreq 只在没有任何内部请求执行时运行本脚本 NC Nocase URL地址匹配对大小写不敏感...它使用一个内部请求来做检查,由于会降低服务器的性能,所以请谨慎使用! 以上就是常用的一些语法,当然,htaccess文件可以写的东西远不止这些。

2.1K51

apache rewritecond_hfile数据格式中的data字段用于

nosubreq|NS (仅用于不对内部请求进行处理 no internal sub-request) 在当前请求是一个内部请求,此标记强制重写引擎跳过该重写规则。...比如,在mod_include试图搜索可能的目录默认文件(index.xxx), Apache会内部地产生子请求。对子请求,它不一定有用的,而且如果整个规则集都起作用,它甚至可能会引发错误。...,它可以重写uri=/abc/…为filename=/def/…,但是,后续的mod_alias在试图作URI文件名的翻译,则会失效。...注意: 如果需要混合使用不同的包含URI文件名翻译器的模块, 就必须使用这个标记。。混合使用mod_alias和mod_rewrite就是个典型的例子。...[L,R=301] 这个规则是将域名下搜有a/index.html 301 a/ 的URL下。

4.4K10

.htaccess重写让空间绑定多个域名不同的目录支持多站点

打开多个绑定的域名,均指向一个默认首页,而根据主机读写规则,优先index.php首页,因此多个域名打开的均是同一个网站的首页。...(参考这个方法可以购买Godaddy的其他型号的主机,可以建立多个站点) .htaccess重写让空间绑定多个域名不同的目录支持多站点方法与教程 1、Godaddy的前三个月1.99美元的空间的确有人不少人购买了...PS:我的Godaddy的空间原来的域名是baidu0.tk,我利用.htaccess重写将另一个域名0baidu.tk绑定另外一个目录当中,这样我利用Godaddy经济型空间建立了多个网站(原来是不具备这个功能的...,例如我想将0baidu.tk这个域名绑定在0baidu.tk这个文件夹当中,那么我用FTP新建了0baidu.tk文件夹,将.htaccess文件放在这里。....tk/ 转载请注明:积木居 » .htaccess重写让空间绑定多个域名不同的目录支持多站点

6.6K10

.htaccess重写让空间绑定多个域名不同的目录支持多站点

打开多个绑定的域名,均指向一个默认首页,而根据主机读写规则,优先index.php首页,因此多个域名打开的均是同一个网站的首页。...(参考这个方法可以购买Godaddy的其他型号的主机,可以建立多个站点) .htaccess重写让空间绑定多个域名不同的目录支持多站点方法与教程 1、Godaddy的前三个月1.99美元的空间的确有人不少人购买了...PS:我的Godaddy的空间原来的域名是baidu0.tk,我利用.htaccess重写将另一个域名0baidu.tk绑定另外一个目录当中,这样我利用Godaddy经济型空间建立了多个网站(原来是不具备这个功能的...,例如我想将0baidu.tk这个域名绑定在0baidu.tk这个文件夹当中,那么我用FTP新建了0baidu.tk文件夹,将.htaccess文件放在这里。...重写在Godaddy经济型号的空间上建立起了多个域名多个站点了,如果你以后想建立三个站,甚至更多的站,按照上面的方法,选择绑定好域名,然后添加.htaccess语句即可。

7.1K70

如何在CentOS 7上为Apache设置mod_rewrite

重写规则包含以下结构: RewriteRule Pattern Substitution [Flags] RewriteRule:指定RewriteRule指令 模式:与所需字符串匹配的PCRE(Perl...& 表示URL的结尾 about.html 显示Apache遇到匹配模式所服务的文件的路径。 [NC]是一个标志,指示重写规则不区分大小写,以便用户可以在URL中输入大写和小写字母。...匹配重写规则,Apache会忽略这两个字符。但是,有时可能需要查询字符串来在页面之间传递数据。...例1B:匹配选项 在某些情况下,我们可能希望将查询字符串概括为包含不同类型的鞋子。...item=shoes&type=men 此匹配选项允许Apache评估多个模式,而无需为每个模式创建单独的重写规则。 示例1C:匹配字符集 但是,我们还要指定任何项目,而不是仅限制它/shoes。

5.3K00

Apache配置与应用

这种方式需要为服务器配备多个网络接口,因此应用并不是非常广 (3)基于端口 这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用了不同的TCP端口号,因此用户在浏览不同的虛拟站点需要同时指定端口号才能访问...例如,在服务器站点的file文件夹下中存在名为hello.jpg和hello.html的两个文件,此时用户输入http://localhost/file/hello,如果在file文件夹下并没有hello...指令解析: (1)htaccess(分布式隐含配置文件):提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含特定指令的文件,其中的指令作用于此目录及其所有子目录 (2)当AllowOverride...设置成None,相应的配置目录下的.htaccess文件是不被读取的,即无法生效 (3)当AllowOverride设置成All,每一次请求访问相应目录下的文件,都会读取.htaccess文件的配置...,意味着原Apache指令会被.htaccess文件中的指令重写 (4)从性能和安全性考虑,一般都尽可能避免使用.htaccess文件,任何希望放在. htaccess文件中的配置,都可放在主配置文件(

49020

Apache URL重写规则

nosubreq|NS (仅用于不对内部请求进行处理 no internal sub-request)   在当前请求是一个内部请求,此标记强制重写引擎跳过该重写规则。...比如,在mod_include试图搜索可能的目录默认文件(index.xxx), Apache会内部地产生子请求。对子请求,它不一定有用的,而且如果整个规则集都起作用,它甚至可能会引发错误。...注意: 如果需要混合使用不同的包含URI文件名翻译器的模块, 就必须使用这个标记。。混合使用mod_alias和mod_rewrite就是个典型的例子。...匹配01个字符 * 匹配0多个字符 + 匹配1多个字符 ^ 字符串开始标志 $ 字符串结束标志 \n 转义符标志  【注意】:一代Apache要求URL有斜杠而二代Apache却不允许,因此使用 .../404.php [L] (以上是自己的一些见解与总结,若有不足或者错误的地方请各位指出) 作者:那一叶随风 声明:以上只代表本人在工作学习中某一间内总结的观点或结论。

2.9K40

Thinkphp框架的项目规划总结和踩坑经验

+项目文件夹名+入口文件+控制器+方法”,如“localhost/myprj/index.php/Index/index”; 3、服务器配置域名绑定项目文件夹,省略项目文件名,服务器上URL为“www.myprj.com...>等原生PHP函数会导致包含文件中的__APP__、__JS__ 等预定义不被渲染;(框架BUG) 备注3:模板在包含公共模板文件使用,对应的公共模板文件路径为...服务器上部署还可以启用TP的“REWRITE模式”,同时apache配置相应的域名对相应的入口文件,如 www.prj.com index.php ,m.prj.com mobile.php...如: htmlspecialchars(trim($data), ENT_QUOTES) 5)GET或POST中的参数名为m、c、a ,都会出现路由错误,其URL模式为普通模式这是可以理解的,但是其它的...,判断静态文件是否存在,存在则直接显示,否则定向TP框架中处理; 覆盖重写TP中的display()方法,让其除了生成页面外,还生成静态页面; 需要静态化的页面在显示如用户名等通用信息使用ajax获取

2.4K20

虚拟主机搭建多站点出现No input file specified解决方案

前几天写了篇《一台虚拟主机实现多站点建站》,但是在实际检测项目站点时候出现“No input file specified”,测试发现php的项目会出现这个提示,单纯的前端项目不会保证错误...测试环境:景安免费虚拟主机 测试站点数目:3个站点 站点程序:一个前端项目+2个php完整项目 .htaccess伪静态规则文件:    # 绑定vip.cncat.cn 子目录vip     ...Rewrite [L,QSA]    # 可以绑定多个, 只需重复上三行代码并更改一下域名、目录名 就OK了    RewriteCond %{HTTP_HOST} ^vip.cncat.cn$ [NC...]   RewriteRule ^$  /vip/  # 绑定video.cncat.cn 子目录video     RewriteCond %{HTTP_HOST} ^video\.cncat\.cn...访问为/video/目录的文件 这样只需要在根目录下新建.htaccess文件就ok,文件夹下无需再次存放对于的伪静态规则文件!

1.2K20
领券