Php mod_rewrite&。htaccess可以';优胜美地OS X中的t传递变量
我有一个简单的重写规则,它可以正常工作:Php mod_rewrite&。htaccess可以';优胜美地OS X中的t传递变量,php,apache,.htaccess,mod-rewrite,osx-yosemite,Php,Apache,.htaccess,Mod Rewrite,Osx Yosemite,我有一个简单的重写规则,它可以正常工作: RewriteRule ^user/(\w+)/?$ user.php?id=$1 我有一个php文件,其中包含: <?php echo $_GET['id']; ?> 这在以下URL中工作正常,id通过时没有问题: 我知道mod_rewrite正在工作,因为这个url还将我发送到user.php: 但JoeUser从来没有真正被传给1美元。我以前从未见过这种行为。这是OSX中的一个bug,还是我遗漏了什么 这是OSX中的一个b
RewriteRule ^user/(\w+)/?$ user.php?id=$1
我有一个php文件,其中包含:
<?php echo $_GET['id']; ?>
这在以下URL中工作正常,id通过时没有问题:
我知道mod_rewrite正在工作,因为这个url还将我发送到user.php:
但JoeUser从来没有真正被传给1美元。我以前从未见过这种行为。这是OSX中的一个bug,还是我遗漏了什么
这是OSX中的一个bug吗
不,这不是一个bug。这是Apache配置中默认启用的MultiViews
选项的效果。选项MultiViews
由Apache的内容协商模块使用,该模块在mod_rewrite
之前运行,并使Apache服务器匹配文件扩展名。所以/file
可以在URL中,但它将提供/file.php
要关闭它,请使用:
Options -MultiViews
RewriteEngine On
RewriteRule ^user/(\w+)/?$ user.php?id=$1 [L,QSA,NC]
您是否将您的http.conf编辑为:AllowOverride All Options FollowSymlinks Order allow,deny Require All grated allow from allHot Dawg,您很好!这很有效。在网上做一个简单的.htaccess教程,然后遇到这样一堵砖墙,这是一个令人沮丧的过程。你的回答的另一个好处是,我现在有这个系统的其他具体方面需要研究和充实。非常感谢。