首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >具有现有子目录的.htaccess RewriteRule行为

具有现有子目录的.htaccess RewriteRule行为
EN

Stack Overflow用户
提问于 2019-04-02 08:38:09
回答 1查看 63关注 0票数 0

我经历过许多类似的问题,但我找不到这个特殊的案例:

具有这种结构的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public_html/
   q/
      .htaccess
      index.php
      /dirnofixedname1
      /dirnofixedname2
      /dirnofixedname3
  • dirnofixednameN是指有文件可供index.php使用且不能直接访问的文件夹(类似于此,因为我可能不会枚举.htaccess文件中的所有文件,否则这是不切实际的)。
  • index.php应该处理传入的请求

这样做的目的是处理请求,比如:http://domain/q/dirnofixedname2http://domain/q/index.php?q=dirnofixedname2,同时仍然显示http://domain/q/dirnofixedname2。一个很受欢迎而且已经解决的案子。

因此,.htaccess文件是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RewriteEngine On

RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php?q=$1 [L]

问题是,当请求与现有目录(我想要的)匹配时,它按预期工作(index.php执行并获得q),但重定向到:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://domain/q/dirnofixedname2/?q=dirnofixedname2

(并在URL栏中显示这一点),而不是预定的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://domain/q/dirnofixedname2

特别是,如果目录碰巧不存在,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://domain/q/dirthatdoesnotexist

index.phpq作为dirthatdoesnotexist正确处理(脚本显然不接受该处理,而不返回任何内容)。

对于在子Do存在的情况下如何避免重定向,您有什么想法吗?(与参数具有相同的dir名称是实用的)

EN

回答 1

Stack Overflow用户

发布于 2019-04-14 22:19:41

这是由于DirectorySlash指令(默认情况下为On状态)发生的,因为您在URI中请求一个实际的目录。

您可以通过以下方式关闭它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DirectorySlash Off

此外,要屏蔽目录清单,请使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Options -Indexes

在你的.htaccess顶部

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55479697

复制
相关文章
利用htaccess把域名绑定到子目录
把签到助手的介绍页面建好之后,我把网页都放在了www.izgq.net的sign目录下,但是这样的网址 http://www.izgq.net/sign 看起来好难看,所以我便打算看看能不能把域名绑到子目录上。。
zgq354
2019/11/24
2.9K0
利用.htaccess绑定子域名到子目录
使用过emlog的人 应该对其中的静态链接应该不陌生 它就是典型的利用.htaccess文件来对网页进行域名转向。
阿珏
2018/08/02
3.5K0
伪静态规则写法RewriteRule-htaccess详细语法使用
伪静态实际上是利用PHP把当前地址解析成另一种方法来访问网站,要学伪静态规则的写法,要懂一点正则
全栈程序员站长
2022/09/07
6160
利用.htaccess绑定子域名到子目录
一般情况下,一台虚拟主机只允许绑定一个域名到根目录下。 使用过emlog的人 应该对其中的静态链接应该不陌生 它就是典型的利用.htaccess文件来对网页进行域名转向。 利用.htaccess绑定域名到子目录,前提你的空间服务器必须支持apache的rewrite功能,只有这样才能使用.htaccess。如果你的空间是Linux服务器 一般默认都开启了的。即可以实现绑定域名到子目录、一个空间多个站点。 下面是以 link.52ecy.cn 绑定到子目录link为例的.htaccess代码. <I
Youngxj
2018/06/06
3.3K0
个人使用. htaccess伪静态技巧分享
修改.htaccess文件 301跳转重定向 <ifmodule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} xbbai.site$ [NC] RewriteRule ^(.*)$ https://www.xbbai.site/$1 [R=301,L] </ifmodule> 绑定子域名到子目录 <IfModule mod_rewrite.c> RewriteEngine On Rewrit
奶糖味的代言
2018/04/16
2.5K0
虚拟主机搭建多站点出现No input file specified解决方案
        前几天写了篇《一台虚拟主机实现多站点建站》,但是在实际检测项目站点时候出现“No input file specified”,测试发现php的项目会出现这个提示,单纯的前端项目不会保证错误,属于上次的失误!
十月梦想
2018/08/29
1.3K0
通过.htaccess防盗链
最近网上有人抱怨10G的流量莫名其妙就没了,因为没有防止图片盗链。我也在想,我的这个小站流量每个月也不过十多G,要是盗链的话也不能撑多久。而且我用的是DA面板,没有防盗链的设置。但因为服务器用的是Apache服务器,所以我可以方便地用.htaccess文件设置我的防盗链功能。
phith0n
2020/10/16
1.2K0
快速配置Apache的 伪静态 (转发)
apache伪静态配置,需要网站根目录下有 .htaccess 文件,没有则需要自己创建一个,phpStudy V8能够自动生成这样一个文件,免去了繁琐的配置过程。
用户7138416
2022/01/16
2.4K0
一台虚拟主机实现多站点建站
        一台虚拟主机服务商的要求都是只能存放一个站点,而我们这些小站长,博主之类;买一台一般500m-1g的虚拟主机完全够用了!但是准备一个新的站点,又要去买新的虚拟主机,浪费钱,不干!我们就像是否可以在一个虚拟主机上就像多站点建站!
十月梦想
2018/08/29
3.2K0
教你把域名解析到二级目录或以下
其实原理也很简单,就是利用.htaccess伪静态文件绑定域名到子目录.但是前提你的主机服务器【或者空间】必须支持apache的rewrite功能,只有这样才能使用.htaccess伪静态文件,如果你的空间是Linux服务器 一般默认都是开启了的。 第一步:绑定域名到你空间 ①登陆域名管理台(如DNSPod) 把需要绑定的域名 解析到你的空间; ②登陆虚拟主机/空间管理台(如万网) 绑定域名到空间; 注意,第一步标题是绑定域名到你空间,比如我绑定 blog.xbbai.site
奶糖味的代言
2018/04/16
6.8K0
Emlog下二级域名绑定子目录伪静态规则
这里说的二级域名绑定子目录,是指在主域名对应空间根目录装了EMLOG程序的情况,并且是linux+apache环境。我们想让二级域名指向子目录实现访问,就需要修改一下伪静态规则。首先,在你的空间管理平台中绑定二级域名(通常说接收)如:i.ewceo.com,同时域名也要做好解析工作(一般可以用*号泛解析), 剩下的就是配置.htaccess文件了,直接打开根目录下的.htaccess文件可以看到如下代码:
用户8099761
2023/05/10
1.5K0
配置Apache把子目录设置为二级站点
话说这个教程在网上找了半天硬是都不对,研究半天终于找到一个真正可行的方法,赶紧记一下。。
mythsman
2022/11/14
1.7K0
RewriteRule指令[通俗易懂]
作为RewriteRule指令的第三个参数。 Flags是一个包含以逗号分隔的下列标记的列表:
全栈程序员站长
2022/08/27
3910
wordpress开启子目录多站点模式并给子站绑定独立域名
wordpress开启多站点模式,多站点模式即是使用一套wordpress程序就可以搭建多个独立、互不干扰的wordpress站点,各站点之间的用户、文章、附件等都互不干预。wordpress的多站点模式对于需要搭建多个不同语言外贸站子站点的用户,或者不同主题的演示网站的用户来说都非常理想。
青梅煮码
2023/01/16
4.5K0
wordpress开启子目录多站点模式并给子站绑定独立域名
如何使用 .htaccess 强制访问 HTTPS
如果你为你的域名安装 SSL 证书,你的下一步应该是配置应用将所有的网络流量通过 HTTPS 传输。
雪梦科技
2020/07/08
3.8K0
传说中图片防盗链的爱恨情仇
我们先来了解了解防盗链的原理,在 http 协议中,如果从一个页面跳到另一个页面,header字段里面会带个 Referer。图片服务器通过检测 Referer 是否来自规定域名,来进行防盗链。
苏南
2020/12/16
9860
RewriteCond RewriteRule
## Rules for TR and ES country sites RewriteCond %{REQUEST_URI} ^/(tr|es)$ [NC] RewriteRule ^(.*) https://xx.com [L,R=301] ##
全栈程序员站长
2022/09/01
2170
10个.htaccess在wp的技巧
作者:matrix 被围观: 48,234 次 发布时间:2011-08-05 分类:Wordpress 兼容并蓄 | 2 条评论 »
HHTjim 部落格
2022/09/26
2.4K0
如何在Ubuntu 18.04上使用mod_rewrite for Apache重写URL
Apache的mod_rewrite模块允许您以更干净的方式重写URL,将人类可读的路径转换为代码友好的查询字符串。它还允许您根据条件重写URL。
水门
2018/10/19
4.4K0
htaccess | 实现万网主机绑定不同的域名解析多个站点
如果有云服务器的话,使用虚拟主机技术可以轻松实现多个域名与文件路径的绑定,但是如果使用的是云虚拟主机呢?
躺平程序员老修
2023/09/05
2140
htaccess | 实现万网主机绑定不同的域名解析多个站点

相似问题

子目录的.htaccess RewriteRule

125

具有www RewriteRule的htaccess

11

子目录中是否存在.htaccess RewriteRule

20

允许子目录级别的.htaccess RewriteRule

12

用于目录子目录的.htaccess不同RewriteRule

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文