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