我的 .htaccess 文件当前是:
RewriteEngine on
RewriteRule ^display/([0-9]+) display.php?id=$1
Run Code Online (Sandbox Code Playgroud)
但是,在 display.php 中,当我尝试访问 的值时$_GET['id'],PHP 说没有值。
目前display.php?id=1工作正常但display/1不起作用。我也尝试过看看是否display/id=1有效display.php/1,但没有一个有效。
我是 .htaccess 的新手,所以我不知道我做错了什么。请帮忙,提前致谢。
您只需要添加“QueryString Append”选项即可:
RewriteRule ^display/([0-9]+) display.php?id=$1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)
如果它不起作用,请尝试:
RewriteEngine on
Options -MultiViews
RewriteRule ^display/([0-9]+) display.php?id=$1 [L]
Run Code Online (Sandbox Code Playgroud)
仅供您参考:
该标志意味着在重写 URI后QSA附加现有的查询字符串。例子:
网址=http://example.com/foo/bar?q=blah
规则:
RewriteRule ^foo/(.*)$ /index.php?b=$1
Run Code Online (Sandbox Code Playgroud)
结果=/index.php?b=bar
注意 是如何q=blah消失的。因为现有的查询字符串被删除,取而代之的是规则目标中的查询字符串 (b=$1)。现在,如果您包含一个QSA标志:
RewriteRule ^foo/(.*)$ /index.php?b=$1 [QSA]
Run Code Online (Sandbox Code Playgroud)
结果变成=/index.php?b=bar&q=blah
最后一条规则:指示服务器在处理完前面的指令后停止重写。
有关更多信息,请查看RewriteRule 标志
| 归档时间: |
|
| 查看次数: |
745 次 |
| 最近记录: |