首页 > 解决方案 > 将特定文件夹重定向到子域但没有文件夹名称

问题描述

尝试仅将子文件夹 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

谢谢!

标签: apache.htaccessmod-rewrite

解决方案


您可以将此重定向用作站点根目录 .htaccess 中的最高规则:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?example\. [NC]
RewriteRule ^b/(.*)$ https://console.tucita247.com/$1 [R=302,NC,NE,L]
  • 确保在测试此更改之前清除浏览器缓存。
  • 确认它工作正常后,替换R=302R=301. 测试规则时避免使用R=301(永久重定向) 。mod_rewrite

推荐阅读