我的.htaccess文件目前是:
RewriteEngine on
RewriteRule ^display/([0-9]+) display.php?id=$1
但是,在我尝试访问$_GET['id']
的值时,在display.php中,PHP表示没有值。
目前display.php?id=1
工作正常但display/1
无法正常工作。我还试图了解display/id=1
或display.php/1
是否有效,但没有。
我是.htaccess的新手,所以我不知道自己做错了什么。请提前帮助,谢谢。
答案 0 :(得分:2)
你只需要添加“QueryString Append”选项,它:
RewriteRule ^display/([0-9]+) display.php?id=$1 [QSA,L]
如果不起作用,请尝试:
RewriteEngine on
Options -MultiViews
RewriteRule ^display/([0-9]+) display.php?id=$1 [L]
仅供参考:
QSA
标志表示在重写URI后附加现有查询字符串。例如:
URL = http://example.com/foo/bar?q=blah
规则:
RewriteRule ^foo/(.*)$ /index.php?b=$1
结果= /index.php?b=bar
注意q=blah
是如何消失的。因为现有的查询字符串被删除而有利于规则目标中的那个(b = $ 1)。现在,如果您包含QSA
标志:
RewriteRule ^foo/(.*)$ /index.php?b=$1 [QSA]
结果变为= /index.php?b=bar&q=blah
上一个规则:指示服务器在处理完前一个指令后停止重写。
有关详细信息,请查看RewriteRule Flags