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

.htaccess mod rewrite不执行重定向

  •  1
  • RWS  · 技术社区  · 7 年前

    test1 test2

    我的尝试失败了。我想我遗漏了一些基本的东西

    <IfModule mod_rewrite.c>
    Options FollowSymLinks
    Options -MultiViews
    RewriteEngine On
    RewriteBase /
    
    RewriteRule ^test1/$ test2/$ #returns 404
    
    #alternatively this one returns 404 too: RewriteRule ^/test1/$ test2/$
    
    </IfModule>
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   DocRoot    7 年前
    RewriteRule ^test1/$ test2/$ #returns 404
    

    如果启用了mod\u rewrite,并且您尝试了这一行,那么您将得到一个500内部服务器错误,因为您有一个无效的 旗帜 争论。您需要明确声明这是一个带有 R 旗子,否则你会得到一个 内部重写 .

    另外,第二个参数 RewriteRule $ test2/$ 无效。

    任何外部重定向也必须高于现有的WordPress指令(即前控制器)。

    Options +FollowSymLinks -MultiViews
    
    RewriteEngine On
    
    RewriteRule ^test1/$ /test2/ [R=302,L]
    
    # BEGIN WordPress
    # ... Rest of .htaccess file goes here
    

    这将重定向单个URL /test1/ /test2/ .

    更改 302 (临时)到 301 (永久的)只有在你测试它工作正常之后(当然,只有在这是永久性的情况下才是如此。)

    <IfModule> 此处不需要包装器。


    或者,这个函数也返回404:RewriteRule^/test1/$test2/$

    .htaccess 重写规则 .

    第一个指令得到404的事实表明这些指令实际上没有被处理?!