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

Htaccess两个不同的重定向

  •  0
  • Jason  · 技术社区  · 17 年前

    RewriteEngine On
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule (.*) /default.php 
    DirectoryIndex index.php /default.php
    

    我想修改一下,以便所有以/test/go to/test/default.php开头的url, 同时使用现有的/default.php保存所有其他url .

    http://www.x.com/hello.php --> http://www.x.com/default.php 例子: http://www.x.com/test/hello.php --> http://www.x.com/test/default.php

    5 回复  |  直到 17 年前
        1
  •  1
  •   xahtep    17 年前

    把/test/in规则放在其他规则之前,但是给它一个 [L] 如果重写规则匹配,则在此处停止其处理的标志。

        2
  •  0
  •   Nick Berardi    17 年前

    RewriteEngine On
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule (/test/)?(.*) $1/default.php 
    DirectoryIndex index.php /default.php
    
        3
  •  0
  •   Stepan Mazurov    17 年前

    这应该有效:

    RewriteEngine On
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule (test/)?(.*) $1default.php [L]
    DirectoryIndex index.php /default.php
    
        4
  •  0
  •   Louis W    16 年前

    RewriteEngine On
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    
    RewriteRule /test/.* /test/default.php 
    RewriteRule .* /default.php 
    
    DirectoryIndex index.php /default.php
    

    您也不需要使用(),因为您没有将该值设置为变量。

        5
  •  0
  •   Andrew Moore    16 年前

    RewriteEngine On
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule .* default.php [L]
    DirectoryIndex index.php default.php
    

    在你的 ./test/ 文件夹 ,复制并粘贴 .htaccess 文件。

    首先,你不需要 / .htaccess接口

    其次,Apache在查找 .htaccess接口 文件。所以里面的任何东西 ./test/.htaccess 将覆盖写入的内容 ./.htaccess