【问题标题】:URL Rewriting or .htacess not workingURL 重写或 .htaccess 不起作用
【发布时间】:2014-01-19 18:11:08
【问题描述】:

我正在尝试重写网址,例如 http://test.com/1234http://test.com/index.php?a=1234

还有我的 .htaccess 文件

    RewriteEngine On

    RewriteRule     /^[a-zA-Z0-9]/?$    index.php?key=$1    [NC,L]

但什么也没发生,它只是显示找不到对象错误,.htaccess 文件已经在根目录中,所以需要帮助 附言我是重写的初学者。

【问题讨论】:

    标签: php apache url-rewriting


    【解决方案1】:

    试试这个重写规则:

    RewriteEngine On
    Options +FollowSymlinks
    RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?key=$1 [NC,L]
    
    • 您需要括号来对字符进行分组并将它们重新用作 $1 参数。
    • 您不需要/
    • 如果您有[0-9] 之类的模式,如果您想匹配多个字符,则需要*+

    顺便说一句,如果key 参数只接受数字,请使用:

    RewriteEngine On
    Options +FollowSymlinks
    RewriteRule ^([0-9]+)/?$ index.php?key=$1 [NC,L]
    

    【讨论】:

      【解决方案2】:

      试试这个

      RewriteRule ^(.*)$ index.php?a=$1 [L,QSA]
      

      ^(.*)$ 导致将整个请求路径作为一个参数传递下去

      QSA 导致将任何查询字符串附加到请求中

      ?a=$1指定参数如何下传

      【讨论】:

        【解决方案3】:

        试试这个重写规则:

        RewriteRule     ^(.*)$     index.php?a=$1     [QSA,L]
        

        【讨论】:

        • 工作但给出 a=index.php 的值,但我希望它是 1234
        猜你喜欢
        • 2015-02-03
        • 2014-08-08
        • 2011-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多