我已经使用重写规则一段时间了,但这很奇怪。
该网站托管在 dev.domain.com,HTaccess代码是
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^order/([^/]+) order.php?id=$1 [QSA]
...
但是,当我去 http://dev.domain.com/order/4 时,_GET美元没有通过,以前从未遇到过这种问题。
-
检查
AllowOverride
是否没有限制您。例如,如果它设置为None
- 这将完全禁用整个 .htaccess 支持,并且 Apache 根本不会在磁盘上查找 .htaccess 文件。 -
检查是否启用了
MultiViews
。众所周知,这会与mod_rewrite一起产生意想不到的结果。 -
将"L"标志添加到规则 -
[L,QSA]
此时停止规则执行。也许您还有其他规则没有在这里发布,这些规则会影响行为。
问题是Nginx根本不支持.htaccess,必须按照自己的方式去做。