如何在 htaccess 中使用 rewriteRule

how do I use rewriteRule in htaccess

我正在尝试将一些网址重定向到漂亮的网址,问题是我是新手,所以我似乎无法弄清楚我做错了什么 这是 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=&search_location= [QSA,L]

RewriteRule . /index.php [L] 

</IfModule>
# END WordPress

试试这条规则:

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

在你的规则中你有:search_categories%5B%5D,可能是一个错误,而 copy/paste 我删除了 %5B%5D 即使这不是问题

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

编辑:

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

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

测试here