Regex htaccess正则表达式wordpress不工作

Regex htaccess正则表达式wordpress不工作,regex,wordpress,.htaccess,Regex,Wordpress,.htaccess,我有一个wordpress网站,设置了一些自定义重定向规则。奇怪的是,我敢肯定,所有这些以前都能工作,但现在其中一些已经不起作用了 以下是完整的htaccess文件: RewriteRule ^properties/([a-zA-Z]+)/([a-zA-Z\+\'.]+) /properties/?prov=$1&city=$2&%{QUERY_STRING} [R,NC] RewriteRule ^properties/([0-9]+) /properties/?id=$1 [

我有一个wordpress网站,设置了一些自定义重定向规则。奇怪的是,我敢肯定,所有这些以前都能工作,但现在其中一些已经不起作用了

以下是完整的htaccess文件:

RewriteRule ^properties/([a-zA-Z]+)/([a-zA-Z\+\'.]+) /properties/?prov=$1&city=$2&%{QUERY_STRING} [R,NC]
RewriteRule ^properties/([0-9]+) /properties/?id=$1 [R,NC]
RewriteRule ^([0-9][0-9][0-9][0-9][0-9])$ /properties/?id=$1 [R,NC]
RewriteRule ^expand.php?id=([0-9]+) /properties/?id=$1 [R,NC]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

# END WordPress
我试着加入一些简单的规则来测试,比如

 RewriteRule ^/bob /contact [R,NC]
但这也不起作用

*编辑以下问题已修复,肯定与上述问题无关(但我会将其留在此处,以防有评论引用)*


此外,不确定这是否提供了任何见解,但在重定向实际工作的页面上,我的wordpress主题被破坏,wp_页脚从未触发,页面的其余部分失败

有几个可能的原因。。。在您的
重写规则
之后,您才可以启用
mod_rewrite
,自定义规则应该包含在它们自己的
标记中,前面有
RewriteEngine,您可能希望将
RewriteBase
设置为站点的根目录(可能是
/wordpress
子目录?您可能希望包含这些规则要重写的内容。)您也无法在
重写规则中的查询字符串上进行匹配,您必须使用
重写条件

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^properties/([a-zA-Z]+)/([a-zA-Z\+\'.]+) /properties/?prov=$1&city=$2&%{QUERY_STRING} [R,NC]
RewriteRule ^properties/([0-9]+) /properties/?id=$1 [R,NC]
RewriteRule ^([0-9]{5,5})$ /properties/?id=$1 [R,NC]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress
这样做:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/

RewriteRule ^bob/?$ /about [R,NC,L]
RewriteRule ^properties/([a-zA-Z]+)/([a-zA-Z+'.]+)/?$ /properties/?prov=$1&city=$2 [R,NC,QSA,L]
RewriteRule ^(?:properties/)?([0-9]+)/?$ /properties/?id=$1 [R,QSA,NC,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
#开始WordPress
重新启动发动机
重写BASE/wordpress/
重写规则^bob/?$/关于[R,NC,L]
重写规则^properties/([a-zA-Z]+)/([a-zA-Z+.]+)/?$/properties/?prov=$1和city=$2[R、NC、QSA、L]
重写规则^(?:属性/)?([0-9]+)/?$/properties/?id=$1[R,QSA,NC,L]
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}!-f
重写cond%{REQUEST_FILENAME}!-d
重写规则。/wordpress/index.php[L]

@zx81:不,不,我不会回答,因为你的答案已经足够好了。我没有评论让你删除你的答案,请取消删除,因为你的答案很好。我错过了这里删除的任何内容,有人能告诉我吗?没有骰子。我把规则包装在标签中,尝试了RewriteBase/和RewriteBase/wordpress,结果与以前一样re.以前有效的一条规则仍然有效,但你想重写到/来自什么?你的WordPress permalinks有效吗?或者他们只是使用post ID?我添加了一条新的虚拟规则只是为了测试,它也不起作用:RewriteRule^/bob/about[L]仅供参考,
expand.php?id=..
将不起作用,因为重写规则模式与查询字符串不匹配。请尝试对每个重写规则使用
[L]
标记,否则将使用Wordpress规则。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^bob /about [R,NC]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/

RewriteRule ^bob/?$ /about [R,NC,L]
RewriteRule ^properties/([a-zA-Z]+)/([a-zA-Z+'.]+)/?$ /properties/?prov=$1&city=$2 [R,NC,QSA,L]
RewriteRule ^(?:properties/)?([0-9]+)/?$ /properties/?id=$1 [R,QSA,NC,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]