.htaccess - 如何将一个或多个 GET 请求重定向到不同的目录或文件?

标签 .htaccess mod-rewrite redirect

所以,我有一个带有 index.php 的网站,并且 GET 请求被发送到它(或 root/)。

例如http://example.com/index.php?category=生日

http://example.com/?category=Birthday

我希望能够仅将这些特定请求 301 重定向到新目录http://example.com/templates/?category=Birthday

我尝试匹配 .htaccess 文件中的 GET 请求的一部分 ?category= 但一旦到达新目录就会导致无限循环。这让我在理解 RegEx 方面遇到了巨大的困难。

所有其他帮助和教程都会执行将所有请求匹配到新目录的任务,但我希望重定向仅在使用?category=时有效

我的 .htaccess 文件是空白的,并且没有其他特殊重写。如果需要,我可以根据要求发布代码。谢谢!

最佳答案

您可以在站点根目录 .htaccess 中使用此规则:

RewriteEngine On

RewriteCond %{QUERY_STRING} (?:^|&)category= [NC]
RewriteRule ^(index\.php)?$ /templates/ [L,NC,R=302]

QUERY_STRING 将自动转移到目标 URI。

关于.htaccess - 如何将一个或多个 GET 请求重定向到不同的目录或文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34896228/

相关文章:

node.js - Paypal 定期付款重定向到 Paypal 的主页

ruby-on-rails - 在 rails 上使用 htaccess 密码保护?

.htaccess - 将 .htaccess 用于 REST 会进行 301 重定向

php - 子目录的mod_rewrite

.htaccess - CakePhp 2.0 .htaccess

php - Cakephp:加载背景图像 css

ios - iTunes 链接何时重定向到 iTunes 应用程序?

.htaccess - Magento 1.9 - 重定向太多

php - "Public"文件夹的 Laravel(和通用)框架设置

asp.net - IIS URL 重写 - 具有多个域