【问题标题】:.htaccess and the GET[] variable.htaccess 和 GET[] 变量
【发布时间】:2017-07-24 06:14:31
【问题描述】:

我正在使用 PHP 在我的本地计算机上开发一个网站。
在我的 .htaccess 文件中,我有以下行:

RewriteRule ^project-details/([a-zA-Z0-9-]+)/ project-details.php?pn=$1 [NC,L]

在产品页面上,我有包含./product-details/icecap-mouse249/...之类的链接的项目,.htaccess 文件将依次获取并将“icecap-mouse249”分配给行尾的“pn” :?pn=$1 [NC,L].

当点击该项目时,该人将被带到产品详细信息页面。在该页面中,我有以下行:

$pn = $_GET['pn'];

这允许 URI 提取“pn”值并将其分配给变量 $pn,并利用该变量从数据库中提取数据并显示该特定产品的所有信息。

所以,它可以在我的机器上本地运行,但是当我上传文件时,页面不会使用$_GET[pn] 提取任何内容。

产品详细信息页面有效,因为当我将值硬编码为 $pn 时:

$pn = 'icecap-mouse249';

页面显示正常...从数据库中提取数据。

我已经完成了phpinfo(); 以查看是否启用了 mod_rewrite,但 phpinfo 页面的“已加载模块”部分未显示。我按了 CTRL+F 看看是否可以通过 FIND 工具找到“mod_rewrite”,但没有弹出任何内容。

让我感到困惑的是它在我的机器上本地运行。

我花了一个小时与我的主机提供商...他们没有任何帮助。

我希望我对自己的解释是正确的,任何见解都将不胜感激。谢谢。

【问题讨论】:

    标签: php .htaccess mod-rewrite server phpinfo


    【解决方案1】:

    你的代码是正确的

    看起来您正在处理特殊的服务器配置。 尝试禁用可能导致 1and1 出现问题的多视图(添加到 .htaccess),并尝试单独添加 AllowOverride all。

    Options -MultiViews
    AllowOverride All
    

    上传文件后,当您点击链接时,页面是否显示任何错误?它是否显示任何内容?

    您说,您的链接指向./product-details/icecap-mouse249/。确保您放置链接的页面位于根目录中,例如:

    http://example.com/page-with-links.php

    但是如果带有链接的页面位于根目录之外,它将无法正常工作。

    http://example.com/xyz/page-with-links.php

    这是因为您要求查找^project-details,这意味着

    http://localhost/project-details/any-string/ 要么 http://example.com/project-details/any-string/

    【讨论】:

    • 感谢您查看我的代码。我的所有文件以及 .htaccess 文件都在根目录中。奇怪的是,这些网页在我的笔记本电脑(XAMPP)上的本地服务器上运行,它在 GoDaddy 服务器上运行(当我在那里时,但我已经转移到 1and1)......这就是它的位置不工作...在 1and1 服务器上。我已经与客户服务人员交谈过,但他们只能确认是否在 apache 配置上启用了 mod_rewrite;他们说他们是。所以,我现在很困惑。
    • 我编辑了答案。尝试添加到 .htacces “Options -MultiViews and AllowOverride All”。
    • 我尝试添加您推荐的内容,但仍然无效。我需要继续排除故障。我对 StackOverflow 做了一些研究,有同样的问题;可悲的是,没有什么对我有用。谢谢,不管怎样。
    • 出于某种原因你需要坚持使用 1&1,如果你编写一个处理重定向的 php 脚本,而不是使用 .htaccess 来完成,你会更快地完成你的项目 - 这绝对是一个 1&1问题。在进行了一些搜索之后,更多的人遇到了与 1&1 相同的问题,并且一直不清楚他们是如何解决这种情况的
    • 不幸的是,我已经接受了。感谢您的建议和回复@docliving。
    猜你喜欢
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多