我的 .htaccess 没有正常工作 [关闭]

Posted

技术标签:

【中文标题】我的 .htaccess 没有正常工作 [关闭]【英文标题】:my .htaccess is not working as it should [closed] 【发布时间】: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" 【参考方案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,您的解决方案完美运行!

以上是关于我的 .htaccess 没有正常工作 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

.htaccess子域名重定向无法正常工作

为啥我的 .htaccess 文件的 301 重定向不能正常工作?

.htaccess文件在Godaddy服务器上无法正常工作

当我已经使用工作正常的文章时,如何在 htaccess 中为配置文件用户创建干净的 url

Centos htaccess 没有被读取

.htaccess上传到万神殿服务器时没有在drupal 7上工作