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

为什么这个mod重写规则不起作用?

  •  0
  • rhodesjason  · 技术社区  · 16 年前

    我的机器上有一个开发站点

    localhost/~Jason/hfh/admin/?admin=collections
    

    RewriteEngine On
    RewriteBase /~Jason/hfh/
    RewriteRule ^([A-Za-z0-9\-\_]*)$ index.php?admin=$1
    

    但是当我去

    localhost/~Jason/hfh/admin/collections
    

    我得到一个“找不到页面”错误。谁能告诉我为什么?

    (这与另一项质询有关 this link .)

    3 回复  |  直到 9 年前
        1
  •  1
  •   Simeon Pilgrim    16 年前

    如果您在/hfh/admin/中有.htaccess文件,请将其作为开始的基础。

    RewriteBase /~Jason/hfh/admin/
    

    然后你会看到你所期望的。此外,当文件/目录存在时,您可能希望子句不重定向。

    键入预期结果URL是否有效?

    /~Jason/hfh/admin/index.php?admin=Collections
    

    那么,如果您将整个批次更改为:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /~Jason/hfh/admin/index.php?admin=$1 [L]
    
        2
  •  0
  •   Jeffrey Aylesworth    16 年前

    尝试将规则更改为:

    RewriteRule ^([A-Za-z0-9\-\_]*)$ admin/index.php?admin=$1
    
        3
  •  0
  •   rhodesjason    16 年前

    推荐文章