【问题标题】:HTACCESS Works, But php $_GET Does NotHTACCESS 有效,但 php $_GET 无效
【发布时间】:2013-12-23 19:31:54
【问题描述】:

我已经阅读了几乎所有关于这个问题的帖子,但似乎没有任何效果。

我已经成功地重写了下面的代码,它工作得很好。 .htaccess 文件位于 /~user/business/ 文件夹中。我在访问http://localhost/~user/business/index/155/ 时使用RewriteRule ^index/([0-9]+)/?$ /index.php?id=$1 [QSA,PT]。但是,当我尝试在 php 中获取变量时,它什么也不返回。重写就像加载 index.php 一样工作,但根本没有获取变量。

我的主要目标是,我想从上面的代码中访问id,但没有任何显示。 <?php echo $_GET['id']; ?> 即使我尝试这个 print_r($_GET); 所有 get 变量的数组,它也会返回一个空数组。我也不想将查询附加到 url 的末尾。

很多帖子都有根据回复起作用的答案,即使我逐字逐字复制它们,更改目录和地址,似乎也没有任何效果。

我使用的是 Apache 2,在 MAC 上设置为 localhost。是不是有什么问题,可能是在 php.ini 文件中?

【问题讨论】:

  • 这是你唯一的规则吗?您使用PT 标志是否有原因?
  • 这只是我看到的。我尝试了NC,LL,QSA 以及许多其他组合。我不在乎那部分,只要我可以访问 url 的那部分,而不必在有或没有 QSA 的情况下附加查询
  • 这些标志都不需要。
  • 那么我如何通过 Rewrite 访问我的 url 中的 id var
  • 我把它们都删除了,但它仍然不允许我通过$_GET访问

标签: php .htaccess variables mod-rewrite get


【解决方案1】:

经过多次尝试,就像在我的mac上重新配置整个虚拟主机设置一样,我意识到这是一个非常简单的错误,与我的.htaccess文件无关。

我的文件名是index.php,而我的重写是RewriteRule ^index/([a-zA-Z0-9_-]+)/ index.php?id=$1 [NC,L],由于某种原因,如果有一个名为index.php 的文件,它不会让我使用^index。我可以将 ^index 命名为 ^page^blue 或其他任何名称,但不能命名为 ^index,它会正常工作。

我意识到我的/index.php 页面可以通过键入/index 来加载。因此,它实际上不是重定向,而是独立页面。

为了解决这个问题,我必须使用终端在<Directory "/Users/User/Sites"> 文件下的vhost.confuser.conf 文件中添加几行代码。

sudo nano /private/etc/apache2/extra/httpd-vhosts.conf

在此,我必须从选项中删除 MultiViews 的代码。

<Directory "/Users/User/Sites">
    Options Indexes FollowSymLinks SymLinksifOwnerMatch MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

现在看起来像这样

<Directory "/Users/User/Sites">
    Options Indexes FollowSymLinks SymLinksifOwnerMatch
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

一旦我这样做了,/index.php 页面将无法再通过键入 /index 来加载。因此,我可以使用我最初在 .htaccess 文件中使用的代码。一切都在天堂里解决了。这需要大量非常艰苦的挖掘和一个令人头疼的问题。

感谢你们的帮助。

【讨论】:

  • 为您投票,为您自己解决问题,并花时间回帖。将您的其他问题发布为编辑,并在下面参考您的答案。
  • 谢谢 :) 我也刚刚编辑了答案,因为我的答案有一个我刚刚解决的问题,现在我刚刚看到另一个人有类似的问题,所以我走了,哈哈。
猜你喜欢
  • 2021-02-21
  • 2013-07-19
  • 2021-10-25
  • 2023-04-02
  • 1970-01-01
  • 2017-05-08
  • 2014-10-03
  • 1970-01-01
  • 2013-07-28
相关资源
最近更新 更多