【问题标题】:my .htaccess is not working as it should [closed]我的 .htaccess 没有正常工作 [关闭]
【发布时间】:2014-07-14 12:13:03
【问题描述】:

我在下面有这个 .htaccess,按照我的规则,我的 index.php 是我的默认值,是我访问所有内容的地方,我想要导航的地方,这个索引也恢复变量 url:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1

然后我有我的函数getHome()来处理url,现在我只是回显我的$url,它应该得到url传递的值:

function getHome(){
    $url = $_GET['url'];
    echo $url;
}

比我有我的 index.php,我在哪里调用我的 getHome(),现在我正在测试,在我的 url 上传递一些值。

但是当我将一些随机值传递到我的网址时,我总是得到“找不到对象!....错误 404”

但是我想回应我在 URL 中传递的值

你知道我做错了什么吗?

更新:

我的代码中有一个<?php<? instread,现在我遇到了一个错误:

注意:未定义索引:$url中的url = $_GET['url'];

我将函数更新为:

$url = isset($_GET['url']);

现在我没有未定义的索引错误,但我之前也有同样的错误,当我将一些随机值传递给我的 URL 时,我总是得到“找不到对象...错误 404”。

【问题讨论】:

  • 你能发布一个你正在传递的示例链接吗?例如"example.com/home"

标签: php .htaccess


【解决方案1】:

检查是否启用了 mod_rewrite,并检查网络服务器配置是否允许使用 .htaccess 文件 - 请参阅 http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride 了解详细说明。

【讨论】:

  • 感谢您的回答,但 mod_rewrite 已启用,这是我做的第一件事。但是现在我更新了我的问题,因为我在这里打开的 php 标签错误,现在我有一个未定义的索引错误!
  • 它没有被设置,所以你的配置一定是错误的。我已经测试了相同的 .htaccess 和 @hyubs 所以它是你的 Apache 配置。
  • 我正在使用 xampp。我只需要启用 AllowOverride All 和 mod_rewrite 对吗?
【解决方案2】:

这应该可以工作,但作为替代方案,您也可以使用:

$url = $_SERVER['REQUEST_URI'];

那么您就不必检查是否设置了任何内容或在重写规则中传递查询变量。

【讨论】:

  • 谢谢 jeroen,您的解决方案完美运行!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 2018-11-28
  • 1970-01-01
  • 2017-06-24
  • 1970-01-01
  • 2013-09-10
  • 2017-04-05
相关资源
最近更新 更多