apache - 将子域重写到文件夹后避免内容重复
问题描述
我在我的 中定义了以下规则,.htaccess
我不久前在另一个线程中找到了这些规则(我不记得是哪一个):
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteRule ^((?!sub/).*)$ /sub/$1 [L]
目标是显示任何内容,domain.com/sub
就好像它来自sub.domain.com
. 这工作正常。
但是,有一个小警告:sub.domain.com
并且sub.domain.com/sub
两者都在工作。
如何防止sub.domain.com/sub
被访问?我尝试将其重写/重定向到,sub.domain.com
但当然,我最终得到了一个无限循环重定向。
解决方案
在里面有你的第一条规则sub/.htaccess
:
RewriteEngine On
# remove /sub/ from URIs
RewriteCond %{THE_REQUEST} \s/+sub/(\S*)\s
RewriteRule . /%1 [L,NE,R=301]
将有问题的规则留在站点根目录 .htaccess 中。
推荐阅读
- docker - 在 docker 容器中构建 SSIS 项目
- python - 返回该类的所有实例的另一个方法返回的值的总和?
- mysql - 如何以 24 小时计算显示时间结果
- windows - 从 windows-host 上的 windows-box 访问共享的 vagrant-folder 而不使用“net use”
- ios - 如何从 Rest API 发送推送通知
- entity-framework - 实体框架一对多:SqlException
- postgresql - postgres 查找匹配和不匹配的记录
- python - 在 Python 中通过 '\n' 将字符串拆分为子字符串
- ios - 强制关闭 iOS 应用程序后,firebase 通知会调用“application:didReceiveRemoteNotification:”吗?
- amazon-web-services - AWS WAF 和 AWS GuardDuty 有什么区别?