Apache在“?param = value”

时间:2018-05-30 11:04:53

标签: apache .htaccess redirect mod-rewrite

我试图这样做,但我可以找到答案只是删除URL中的最后一个斜杠而没有查询参数。基本上我想要实现的是这个

我原来的网址:     https://example.com/node/?id=10

我希望将其转换为:https://example.com/node?id=10

这是否可能以某种方式使用mod_rewrite或类似的东西?

2 个答案:

答案 0 :(得分:1)

您可以使用此重定向规则从非目录中删除目录,而不会影响查询字符串:

RewriteEngine On

# if not a directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [NE,R=301,L]

答案 1 :(得分:0)

如果这符合您的需求,您可以尝试:

.htacccess的内容:

RewriteEngine On
RewriteBase /
DirectorySlash Off

# remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\/(\?.*)?$ $1$2 [R=301,L]

我只对https://htaccess.madewithlove.be/进行了快速测试,似乎正常运作。