【问题标题】:how do I use rewriteRule in htaccess如何在 htaccess 中使用 rewriteRule
【发布时间】:2021-12-08 02:51:47
【问题描述】:

我正在尝试将一些 url 重定向到漂亮的 url,问题是我是新手,所以我似乎无法弄清楚我做错了什么 这是现在的 htaccess,但重写规则不起作用。

   # BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ -
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([.]+)/([.]+)$ index.php?search_categories%5B%5D=$1&search_location=$2 [QSA,L]

RewriteRule . /index.php [L] 

</IfModule>
# END WordPress

【问题讨论】:

  • 请阅读How to Ask。给我们一个您想要重写的 URL 示例,以及正确的问题描述 - “不工作”不是一个。

标签: regex wordpress .htaccess redirect url-rewriting


【解决方案1】:

试试这个规则:

RewriteRule ^(.+[^/])/(.+)$ index.php?search_categories=$1&search_location=$2 [QSA,L]

在您的规则中,您有:search_categories%5B%5D,复制/粘贴时可能是一个错误我删除了%5B%5D,即使这不是问题

^(.+[^/])/(.+)$匹配category/location规则[^/]是不匹配斜线/

编辑:

也可以简化为:^([^/]*)/(.*)$

在您的代码[.]+ 中,点匹配Any single character 但括号用于范围,如[abc] 将匹配a、b 或c,因此它不适用于仅[.]+,就像我在你之前写的一样斜线不能与[^/]匹配,最后一个必须在括号内,更多hereCheat Sheet

测试here

【讨论】:

  • 非常感谢你的实际工作,但有人能解释一下为什么前一个没有工作吗?
  • 很高兴它成功了! [.]+ 点匹配 Any single character 但括号用于范围,如 [abc] 将匹配 a、b 或 c,您也必须不匹配斜线与 [^/],更多 here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
  • 2015-02-24
  • 1970-01-01
相关资源
最近更新 更多