【发布时间】:2016-10-20 17:02:53
【问题描述】:
我想从 URL 中删除 "?item="。
所以,从
domain.com/?item=2
到
domain.com/2
如何简单去掉问号、键和等号?
【问题讨论】:
标签: .htaccess url mod-rewrite
我想从 URL 中删除 "?item="。
所以,从
domain.com/?item=2
到
domain.com/2
如何简单去掉问号、键和等号?
【问题讨论】:
标签: .htaccess url mod-rewrite
通常在您的编程语言中,您会在 url 栏中写下您希望看到的最终 url,例如 domain.com/2,然后在您的 .htaccess 文件中,您将通过转换使这个无法识别的地址被您的程序识别发给domain.com/?item=2。
这个重定向会像这样完成:
RewriteRule ^\d+$ index.php?item=$1 [L]
[编辑]
我知道如果我在上面编辑我的规则是不公平的 - 现在我意识到它不完整哈哈 - 所以我在这里改变它:
RewriteRule ^(\d+)/?$ index.php?item=$1 [L]
我想添加到已接受答案的唯一内容是您可以将 [0-9]+ 替换为 \d+。
【讨论】:
你可以像这样重写;
[apache]
RewriteEngine On
RewriteRule ^/([0-9]{1})[/]?$ index.php?item=$1
【讨论】:
转换
到
你可以使用这条规则:
RewriteEngine on
#1) externally redirect the request "/?item=numbers" to "/numbers"
RewriteCond %{THE_REQUEST} /\?item=([^\s]+) [NC]
RewriteRule ^ /%1? [L,R]
#2) internally rewrite "/numbers" back to "/?item=numbers"
RewriteRule ^([0-9]+)/?$ /?item=$1 [L]
【讨论】: