apache - .htaccess:检查查询字符串是否具有特定值或重定向它

标签 apache .htaccess

我正在尝试学习一些 .htaccess 并且非常担心它可以做什么。我在网上看到了一个片段但无法让它工作,它基本上是这样的 如果查询字符串没有特定值,则将其重定向到 index.php 代替或其他页面。我怎么做?

这寻找值(value)苹果:

www.domain.com/somefile.php?a=apples&b=xyz

这将重定向到 index.php:
www.domain.com/somefile.php?a=stinkycheese&b=xyz

最佳答案

您需要在 RewriteCond 中使用 %{QUERY_STRING} 变量。例如,如果您不想重定向,如果存在 redirect=no在查询字符串中,它看起来像这样:

RewriteCond %{QUERY_STRING} !(^|&)redirect=no($|&)
RewriteRule . /index.php [L]

因此,如果 RewriteCond 失败(查询字符串中有 redirect=no),则不要应用以下规则,该规则会将请求 URI 的任何内容重写为 /index.php .您需要的实际规则可能有所不同,但使用 RewriteCond 和 %{QUERY_STRING} 是您想要的基本思想。

关于apache - .htaccess:检查查询字符串是否具有特定值或重定向它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8142307/

相关文章:

apache - 从存储库 checkout 代码时出现 SVN 错误 E175002

php/apache2 - if (bug - discussion, finding an explanation) 简写

WordPress htaccess 永久链接

apache - htaccess - 删除 .php 扩展名并保留变量

.htaccess - 简单的 htaccess 重定向 - 子域到文件夹

mysql - Apache 服务器和 tomcat 服务器

jquery - 忽略 Access-Control-Expose-Headers 设置

java - 记录生成的 CXF 客户端的原始 XML

.htaccess - htaccess 将子域重定向到根域

php - 错误 header : ap_headers_output_filter() after putting cache header in htaccess file