apache - 将特定文件夹重定向到子域但没有文件夹名称
问题描述
尝试仅将子文件夹 example.com/b 重写到另一个域。
例子:
www.example.com/a/name
--> 不重定向
www.example.com/b/name
--> console.example.com/name
'请注意,b
子域中不存在
怎么会是RewriteCond + RewriteRule / RewriteMatch
命令?
这就是我所拥有的
RewriteCond %{REQUEST_URI} ^/b/?$
RewriteRule ([a-z0-9_-]*[\/]?)$ https://console.example.com/$1 [R=301,QSA,L]
这是当前 htaccess.conf 文件的副本:
<Directory "/opt/bitnami/apps/wordpress/htdocs">
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?:www\.)(tucita247\.com)$ [NC]
RewriteRule ^b/(.*)$ https://console.%1/$1 [R=301,NC,NE,L]
</Directory>
<Directory "/opt/bitnami/apps/wordpress/htdocs/wp-content/plugins/akismet">
# Only allow direct access to specific Web-available files.
# Apache 2.2
<IfModule !mod_authz_core.c>
Order Deny,Allow
Deny from all
</IfModule>
# Apache 2.4
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
# Akismet CSS and JS
<FilesMatch "^(form\.js|akismet\.js|akismet\.css)$">
<IfModule !mod_authz_core.c>
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</FilesMatch>
# Akismet images
<FilesMatch "^logo-full-2x\.png$">
<IfModule !mod_authz_core.c>
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</FilesMatch>
</Directory>
# BEGIN rlrssslReallySimpleSSL rsssl_version[4.0.6]
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
# END rlrssslReallySimpleSSL
WORDPRESS htaccess
# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
谢谢!
解决方案
您可以将此重定向用作站点根目录 .htaccess 中的最高规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?:www\.)?example\. [NC]
RewriteRule ^b/(.*)$ https://console.tucita247.com/$1 [R=302,NC,NE,L]
- 确保在测试此更改之前清除浏览器缓存。
- 确认它工作正常后,替换
R=302
为R=301
. 测试规则时避免使用R=301
(永久重定向) 。mod_rewrite
推荐阅读
- git - 使用 Jenkins 管道将文件夹从旧分支复制到 SCM 正在使用的分支中
- macos - 无法在 macOS 上将 AAC/AptX 编解码器用于蓝牙音频
- azure-devops - 在包更新时触发构建
- python - pyftpsync 在输出中添加 ESC 字符
- aws-cli - AWS QuickSight 新的 api 操作最近宣布在 CLI 1.16.200 中不可用
- python-3.x - Lambda 超时配置在使用 chalice 部署时重置为 1
- python - 将 Python Tkinter-Treeview 中的行提取到 Pandas 数据框中
- google-bigquery - BigQuery - 计算来自 IoT 设备的活动块
- javascript - 当使用 jquery .val() 方法设置对象字段时,Jquery ajax post 发送 null
- sql-server - SSIS从SP执行sql任务返回码