Php 查询字符串无效的Mod Rewrite规则/WordPress、Apache、Virtualmin
我有一个.htaccess重写规则,它应该很简单,但不起作用Php 查询字符串无效的Mod Rewrite规则/WordPress、Apache、Virtualmin,php,wordpress,apache,.htaccess,url-rewriting,Php,Wordpress,Apache,.htaccess,Url Rewriting,我有一个.htaccess重写规则,它应该很简单,但不起作用 RewriteRule ^advisors/(.+)/about/ /advisor_master/about/?advisor=$1 [NC,L] 这应该映射URL,例如: /advisor/stevens group/about/至/advisor\u master/about/?advisor=stevens group 但是,该页面显示404错误 现在,如果我直接转到URL/advisor\u master/about/?a
RewriteRule ^advisors/(.+)/about/ /advisor_master/about/?advisor=$1 [NC,L]
这应该映射URL,例如:
/advisor/stevens group/about/至/advisor\u master/about/?advisor=stevens group
但是,该页面显示404错误
现在,如果我直接转到URL/advisor\u master/about/?advisor=stevens group,它会显示良好
我已经尝试过的疑难解答:
如果我将重写规则更新为目标路径中没有查询字符串,如下所示:
RewriteRule ^advisors/(.+)/about/ /advisor_master/about/ [NC,L]
它不会显示404错误,而是正确加载页面,除非没有查询字符串数据。当然,我需要这个查询字符串数据,所以这还不够好
在我的WordPress functions.php文件中,我还尝试了以下操作:
function init_custom_advisor_rewrite() {
add_rewrite_rule(
'^advisors/([^/]+)/about/',
'index.php?page_id=1049&advisor=$matches[1]',
'top' );
}
add_action( 'init', 'init_custom_advisor_rewrite' );
我重新保存了永久链接设置。这也不起作用,它仍然显示404页面。如果我直接在浏览器中打开URL:
/php?page_id=1049&advisor=stevens group
这将重定向到正确的自定义页面模板:
/advisor\u master/about/?advisor=史蒂文斯集团
并按其应有的方式工作。另外,如果我从add_rewrite_rule()函数中删除查询字符串,就像在.htaccess文件中一样,它也可以在那里工作。但是,我需要动态数据的查询字符串
编辑:另一个想法是,如果直接访问脚本文件,例如,/test.php?advisor=stevens组在WordPress之外,则查看查询字符串值是否有效。这确实可以正常工作,并且可以访问查询字符串。因此,这意味着问题与WP permalink或映射结构有关
安装程序位于Apache2上运行Ubunutu 18的Virtualmin服务器上
以下是apache目录设置:
Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI
allow from all
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,Sy$
Require all granted
AddType application/x-httpd-php .php
有什么建议吗