代码之家  ›  专栏  ›  技术社区  ›  lewsid

htaccess重定向场景,以WordPress为特色

  •  1
  • lewsid  · 技术社区  · 17 年前

    我不擅长任何需要正则表达式的东西——这包括重定向。

    我需要将所有子页面重定向到特定子页面。我尝试过的一切要么失败,要么导致无限重定向循环。

    示例:假设我希望域下的所有内容都重定向到www.test。com/fubar(但显然不是/fubar)

    这看起来应该非常简单。任何人

    [更新]

    到目前为止,我已经尝试了所有发布的内容,但没有任何效果。发生的事情是,页面没有重定向,也没有加载样式表。我认为这与htaccess文件的其余部分有关,该文件包含WordPress的内容:

    RewriteEngine On
    
    RewriteBase /
    
    #uploaded files
    RewriteRule ^(.*/)?files/$ index.php [L]
    RewriteCond %{REQUEST_URI} !.*wp-content/plugins.*
    RewriteRule ^(.*/)?files/(.*) wp-content/blogs.php?file=$2 [L]
    
    # add a trailing slash to /wp-admin
    RewriteCond %{REQUEST_URI} ^.*/wp-admin$
    RewriteRule ^(.+)$ $1/ [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule . - [L]
    RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
    RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
    RewriteRule . index.php [L]
    
    4 回复  |  直到 17 年前
        1
  •  0
  •   MiffTheFox    17 年前

    我会这样说:

    # Don't rewrite anything in /fubar
    RewriteRule ^fubar - [L]
    # Redirect everything to /fubar
    RewriteRule ^(.*)$ /fubar/$1 [R=301,L,QSA]
    
        2
  •  0
  •   Devin Ceartas    17 年前
    RewriteEngine On
    RewrteRule !^/?fubar$ /fubar
    
        3
  •  0
  •   Havenard    17 年前

    你想要什么:

    
    RewriteEngine On
    RewriteRule ^fubar/ - [L] // protect from loop, not sure if its really necessary
    RewriteRule ^.*$ fubar/$0 [L,QSA]
    

    现在,仅当用户提供的文件路径不存在时才重定向:

    
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^.*$ fubar/$0 [L,QSA]
    
        4
  •  0
  •   aehlke    17 年前

    使用代理更容易做到这一点:

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass / http://www.test.com/fubar/
    ProxyPassReverse / http://www.test.com/fubar/