gpt4 book ai didi

javascript - .htaccess RewriteRule 在 javascript 中添加为非斜杠的多个参数

转载 作者:行者123 更新时间:2023-12-02 22:51:28 25 4
gpt4 key购买 nike

这个问题可能是重复的。但我没有找到解决我的问题的方法。我尝试将 RewriteRule 添加到 htaccess 文件中,该文件将结合斜杠静态参数与通过 window.history.replaceState( {} , '', ''); 在 javascript 中添加的非斜杠参数来选择过滤器。我有两个名为“p”和“a”的静态参数。为此我写了规则:

RewriteRule ^/?([0-9a-zA-Z\_\-]*)/([0-9a-zA-Z\_\-]*)$index.php?p= $1&a=$2 [NC,L]

但是我需要为友好的 url 添加非斜杠参数,该参数仅在 js 中创建并用于历史中的后退操作。我希望该网址看起来像:

www.page.com/category/pen.html?colour=green

这应该是不友好的:

www.page.com/index.php?p=category&a=pen&colour=green

参数“a”之后的参数可以很多,但应该在 .html 扩展名之后。

到目前为止,我还没有找到该问题的任何解决方案。感谢您的帮助。

编辑

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?example.com [NC]
RewriteRule ^admin/?$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Za-z0-9\-]+)(/([A-Za-z0-9\-\,]+))?$ /index.php?p=$1&a=$3 [L,NC,QSA]

这有效!

最佳答案

您可以在规则中使用 QSA 标志,将原始规则的任何现有查询字符串与您自己创建的查询字符串合并。

https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_qsa :

When the replacement URI contains a query string, the default behavior of RewriteRule is to discard the existing query string, and replace it with the newly generated one. Using the [QSA] flag causes the query strings to be combined.

关于javascript - .htaccess RewriteRule 在 javascript 中添加为非斜杠的多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58166915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com