htaccess重写重定向到非现有页面

时间:2014-11-24 16:06:06

标签: php .htaccess mod-rewrite redirect

我的URL重写有点麻烦。

我想:

  1. 用params重写网址以斜杠

  2. 重定向到重写的网址。

  3. 在url中的test.php之前允许A-Z0-9目录。现在/test.php只触发。

  4. 示例:

     a href="test.php?options=1>Click here</a>
    
    单击

    将重定向到url:

    test/options/1  
    

    OR

    abc123/test/options/1  (if the link had abc123/test.php)
    

    此页面将作为actuall test.php打开

    现有代码:

    RewriteRule ^test/(.*)$ /test.php?options=$1
    RewriteRule  ^test\.php$ /test/options/%1  [L,R=301]
    

    上述代码有两个问题:

    1. 削减工作,但参数不会在网址末尾消失。 ?options = xx stay
    2. test.php在url中可能有目录号码或字母。在这种情况下,URL Rewrite不会触发。

1 个答案:

答案 0 :(得分:1)

如果你只想将/ options?options = {param}重定向到/ test / 1 /和/ test?options = {params}来/ test你可以这样做:

RewriteCond %{QUERY_STRING}     ^test=options$     [NC]
RewriteRule ^/test$             /test/options/     [NC,L,R=301]

RewriteCond %{QUERY_STRING}     ^test=options$    [NC]
RewriteRule ^/blog$             /test/          [NC,L,R=301]