.htaccess - 如何将单词附加到 URL
问题描述
我有以下网址:
https://example.com/nl/products/stones?color_id=13
我希望它是:
https://example.com/nl/products/stones/white-stones
所以我必须删除 GET 变量并将“white-stones”附加到 URL。
目前我已经尝试过这个:
RewriteCond %{QUERY_STRING} ^color_id=[^&]+&?(.*) [NC]
RewriteRule ^ %{REQUEST_URI}?%1 [R=302,L]
哪个输出:https://example.com/nl/products/stones
但现在我想在这个结果中附加“白石”。我怎样才能做到这一点?在我的研究中,我发现 QSA 应该这样做,但我似乎无法让它发挥作用。
解决方案
我有以下网址:
https://example.com/nl/products/stones?color_id=13
我希望它是:https://example.com/nl/products/stones/white-stones
如果只是这个特定的 ID/URL,那么您可能需要在指令中检查这个特定的 ID 和 URL?这也大大简化了需求。
例如:
RewriteCond %{QUERY_STRING} ^color_id=13$
RewriteRule ^nl/products/stones$ %{REQUEST_URI}/white-stones [QSD,R=302,L]
该QSD
标志 (Apache 2.4+) 会丢弃请求中的原始查询字符串。
或者,是否有更多您希望维护的查询字符串参数?这可以适用于任何网址吗?您的问题中没有明确提到这一点,但您的指令暗示了这一点。这需要稍微不同的方法。
在我的研究中,我发现 QSA 应该这样做
(Query String Append) 只是将原始请求中的查询字符串附加(即合并)与您在替换中分配的QSA
任何查询字符串。这似乎不是您在这里所需要的。
推荐阅读
- excel-formula - 使用下表查找公式,以根据折扣值和产品来引入正确的信用值
- php - 尝试引用主布局时,Laravel @extends 无法正常工作
- git - 如何在 github 页面上发布我的 vue 项目?
- python - 调用后如何删除一个列表变量?
- javascript - 你如何使用内核卷积来检测使用 javascript 的图像中的边缘?
- javascript - 从数组内的对象字段中提取所有单词
- node.js - 通过排序 mongoose 的属性列出子集合数组的对象
- r - 选择前 n 行(按值),但如果 n 行的分数小于 1,则保留所有行
- php - Laravel hasOne 关系未加载
- reactjs - google-map-react 和 google-maps-react 之间的区别?