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

如何将以/test/开头的URL重定向到单独的脚本?

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

    我有一个可用的htaccess:

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

    我希望对此进行修改,以便所有以/test/go to/test/default开头的URL。php。

    例子: 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

    4 回复  |  直到 17 年前
        1
  •  3
  •   Konrad Rudolph    17 年前

    基本上,只要把 /test/ 在你的表情面前。此外,此处不需要括号:

    RewriteRule ^/test/ /test/default.php
    
        2
  •  0
  •   Ken    17 年前

    如果需要从URL传递信息,可以捕获它(带括号)并将其发送到默认值。菲律宾比索(1美元)如下:

    RewriteRule ^/test/(.*)$ /test/default.php/$1
    

    所以http//test/foo/bar/将导致/test/default。php/foo/bar/。然后,脚本可以访问额外的信息。

        3
  •  0
  •   Gumbo    17 年前

    我会使用:

    RewriteCond %{REQUEST_URI} ^/([^/]*/)*
    RewriteRule !/default\.php$ %0default.php [L]
    
        4
  •  0
  •   pfisher42 pfisher42    17 年前
    RewriteRule ^/test(/.*)?$ /test/default.php [L]
    

    如果需要,访问$_服务器全局数组中的原始URI。

    从你的原创作品来看,你可能想要:

    RewriteEngine On
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^/test(/.*)?$ /test/default.php [L]
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^(.*)$ /default.php
    
    推荐文章