apache - .htaccess 在没有 www 的情况下重写并重定向到子目录

标签 apache .htaccess mod-rewrite redirect rewrite

我想重定向

  • www.example.com/*example.com/*

  • 同时重定向
  • example.com/*example.com/forum/*

  • 但我也有 /wiki//blog//style/ , 所以我 不想重定向
  • example.com/style/*example.com/forum/style/*

  • 这就是我目前所拥有的,它无法正常工作:
    Options +FollowSymLinks
    RewriteEngine On
    
    RewriteBase /
    
    RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
    RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/forum/
    RewriteRule ^(.*)$ forum/$1 [R=301,L]
    

    澄清:我的问题可以用更简单的方式提出。

    我想将一个空的 REQUEST_URI 或/或一个不存在的文件重定向到 /论坛/ .

    最佳答案

    尝试这个:

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} ^example\.com
    RewriteRule ^(.*)$ http://example.com/$1 [R=301,QSA,L]
    
    RewriteCond %{REQUEST_URI} !^/(wiki|blog|style|forum)
    RewriteRule ^(.*)$ http://www.example.com/forum/$1 [R=301,QSA,L]
    

    关于apache - .htaccess 在没有 www 的情况下重写并重定向到子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/782143/

    相关文章:

    macos - 证书验证 : Error (20): unable to get local issuer certificate - Chrome on Apple OSX

    mysql - apache mysql 忘记密码

    php - htaccess https 在父目录中,但在子目录中为 http

    apache - .htaccess - 强制使用单域和 SSL

    apache - htaccess 将 RewriteBase 设置为请求 URI 的开头

    php - Apache、PHP 无效的内容长度

    apache - 为什么我的 Markdown 文件没有被压缩?

    php - 如何根据 .htaccess 中的文件类型限制文件上传大小限制

    .htaccess 可以工作,但不允许我访问子文件夹中的博客 index.php

    apache - .htaccess 从子目录重写到根目录