【问题标题】:PHP $_GET returns 'index' when there is extension in URL当 URL 中有扩展名时 PHP $_GET 返回 'index'
【发布时间】:2020-04-02 20:45:59
【问题描述】:

我在 htaccess 中有以下行:

RewriteEngine On
RewriteRule    ^([a-z\-]+)/?$    index.php?page=$1    [NC,L]

在大多数情况下,一切正常。但是,如果我向 URL 添加任何扩展名,var_dump($_GET["page"]); 将显示 string(5) "index"

例如:mywebsite.com/mypge

如果我var_dump($_GET["page"]);,会显示'mypage'。

另一方面,mywebsite.com/mypge.php,将显示'index'

我只需要 .php 扩展名即可工作,并且“正常”地被检测到。

所以,如果我有 mywebsite.com/mypge.php,我需要获取 mypage.php

你能帮我怎么做吗?

谢谢

【问题讨论】:

    标签: php mod-rewrite get


    【解决方案1】:

    您的正则表达式不允许. 这应该有效:

    RewriteRule    ^([a-z.\-]+)/?$    index.php?page=$1    [NC,L]
    

    【讨论】:

    • 更好:^([a-z.\-]+)\/?$(转义斜线)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 2012-08-27
    相关资源
    最近更新 更多