Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 如何将word附加到URL_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

.htaccess 如何将word附加到URL

.htaccess 如何将word附加到URL,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,我有以下网址: https://example.com/nl/products/stones?color_id=13 我希望它是: https://example.com/nl/products/stones/white-stones 因此,我必须删除GET变量,并将“whitestones”附加到URL 目前我已经尝试过: RewriteCond %{QUERY_STRING} ^color_id=[^&]+&?(.*) [NC] RewriteRule ^ %{REQUE

我有以下网址:

https://example.com/nl/products/stones?color_id=13
我希望它是:

https://example.com/nl/products/stones/white-stones
因此,我必须删除GET变量,并将“whitestones”附加到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+)从请求中丢弃原始查询字符串

或者,您希望维护更多的查询字符串参数吗?这是否适用于任何URL?您的问题中没有明确提到这一点,但您的指令暗示了这一点。这需要一种稍微不同的方法

在我的研究中,我发现QSA应该做到这一点


QSA
(查询字符串附加)只是将原始请求中的查询字符串附加(即合并)到您在替换中分配的任何查询字符串中。这似乎不是您在这里所需要的。

您只想翻译这一个id吗?@eckes是的,确实!%1将匹配Id之后的任何内容,因此
RewriteCond^color_id=1(&(.*)重写规则^%{REQUEST_URI}/white stone?%2[R=302,QSA,L]
可能吗?但我承认Apache重写非常痛苦,我不会尝试调试它。您可能会发现nginx更容易。@eckes this返回我:
https://example.com/nl/products/stones/white-stone?color_id=13
那么可能没有qsa?