我需要做一些URL重写,但这对我来说是全新的,我尝试了一些事情,但似乎没有任何效果。例如:我有一个如下所示的URL。
http://example.com/directorio/?filter=all&search_text=&type=medicos&location=quito&cs_directory_search_location=Yes&search_view=&goe_location_enable=No&cs_loc_max_input=5&cs_loc_incr_step=1&submit=&action=cs_directory_map_search
我想让它看起来像:
http://example.com/directorio/medicos/quito/
我试过这样的方法
.htaccess
.
RewriteRule ^directorio/([a-z]+)/([a-z]+)/?$ index.php?pagename=directorio&filter=all&search_text=&type=$1&location=$2&cs_directory_search_location=Yes&search_view=&goe_location_enable=No&cs_loc_max_input=5&cs_loc_incr_step=1&submit=&action=cs_directory_map_search [L]
这行不通。还尝试了。。。
add_action(\'init\', \'my_custom_rewrites\' );
function my_custom_rewrites(){
add_rewrite_tag( \'%filter%\', \'([^/]+)\' );
add_rewrite_tag( \'%search_text%\', \'([^/]+)\' );
add_rewrite_tag( \'%type%\', \'([^/]+)\' );
add_rewrite_tag( \'%location%\', \'([^/]+)\' );
add_rewrite_tag( \'%cs_directory_search_location%\', \'([^/]+)\' );
add_rewrite_tag( \'%search_view%\', \'([^/]+)\' );
add_rewrite_tag( \'%goe_location_enable%\', \'([^/]+)\' );
add_rewrite_tag( \'%cs_loc_max_input%\', \'([^/]+)\' );
add_rewrite_tag( \'%cs_loc_incr_step%\', \'([^/]+)\' );
add_rewrite_tag( \'%submit%\', \'([^/]+)\' );
add_rewrite_tag( \'%action%\', \'([^/]+)\' );
add_rewrite_rule(
\'directorio/([a-z]+)/([a-z]+)/?$\',
\'index.php?pagename=directorio&filter=all&search_text=&type=$matches[1]&location=$matches[2]&cs_directory_search_location=Yes&search_view=&goe_location_enable=No&cs_loc_max_input=5&cs_loc_incr_step=1&submit=&action=cs_directory_map_search\',
\'top\' );
}
我也读了一些关于查询变量的内容,但正如我之前所说的,这是我们购买的一个主题,它使用
$_GET
而不是
get_query_var
...
我不确定那里有什么问题,但我没有主意,这是一个艰难的开始学习的方法RewriteRules
. 希望有人能帮忙。
你好@米洛,谢谢你的回答,还有一件事,我的网站是实时的,我的本地主机上也有相同的网站,在上传之前测试更改。问题是,在我的localhost中,我编辑了。htaccess直接访问并使用此规则。
RewriteRule ^directorio/([a-z]+)/([a-z]+)/?$ index.php/directorio/?filter=all&search_text=&type=$1&location=$2&cs_directory_search_location=Yes&search_view=&goe_location_enable=No&cs_loc_max_input=5&cs_loc_incr_step=1&submit=&action=cs_directory_map_search [L]
这个规则,加上那个丑陋的url,效果很好,但如果我把同样的规则放在直播网站上,它就根本不起作用了。此外,如果在那个实时站点上,如果我使用相同的规则,但使用绝对路径,我可以毫无问题地获得重定向,它只是不允许我执行
Rewrite
. 是否可能是我的主机在Apache服务器上有一些配置导致了该问题?