首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果需要,通过添加参数进行.htaccess重定向

如果需要,通过添加参数进行.htaccess重定向
EN

Stack Overflow用户
提问于 2013-08-22 22:58:02
回答 2查看 554关注 0票数 2

我需要向当前的URL添加一个参数(但仅当参数尚未设置时)。其他参数应该保留(我想我可以通过添加%{QUERY_STRING}来实现)。

示例:

代码语言:javascript
运行
复制
index.php?page=1

因此,假设我希望始终为语言添加一个参数- URL应如下所示:

代码语言:javascript
运行
复制
index.php?page=1&lang=1

但是如果已经设置了lang,它应该什么也不做。

EN

回答 2

Stack Overflow用户

发布于 2013-08-22 23:52:56

通过httpd.conf启用mod_rewrite和.htaccess,然后将以下代码放入DOCUMENT_ROOT目录下的.htaccess中:

代码语言:javascript
运行
复制
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} !(^|&)L=[^&]+ [NC]
RewriteRule ^(index\.php)$ $1?L=0 [L,QSA,NC,R=301]
票数 1
EN

Stack Overflow用户

发布于 2013-08-22 23:34:47

为此,您需要在RewriteRule之前使用RewriteCond和%{QUERY_STRING}。

当查询包含lang参数时,您似乎不想重写,因此可以使用负RewriteCond,例如:

代码语言:javascript
运行
复制
RewriteCond %{QUERY_STRING} !(^|&)lang=1($|&)
RewriteRule . /index.php [L]

如上所述,当URL已经具有"lang=1“时,RewriteCond将失败,因此不应用以下RewriteRule (在此任意示例中,它只是将请求重写为/index.php,但您可以根据自己的特定需求进行调整)。

您的实际规则可能不同,但机制保持不变,请使用RewriteCond和%{QUERY_STRING}。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18384044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档