我想用这个:
http://www.example.com/directory/alan-walker
而不是打电话alan-walker.php
(不存在)它应该调用directory.php?s=alan-walker
这可能吗?
我怀疑是.htaccess
重写否?
实际上,这意味着我可以使用:
/directory/alan-walker (good)
而不是directory?s=alan-walker (bad)
我想用这个:
http://www.example.com/directory/alan-walker
而不是打电话alan-walker.php
(不存在)它应该调用directory.php?s=alan-walker
这可能吗?
我怀疑是.htaccess
重写否?
实际上,这意味着我可以使用:
/directory/alan-walker (good)
而不是directory?s=alan-walker (bad)
我想alan-walker
这只是一个示例,可以是这种形式的任何字符串。(或者就像你的例子一样,它只是字面上的“艾伦·沃克”
你可以用一个RewriteRule
在里面.htaccess
<在WordPress前控制器之前。例如:
RewriteRule ^directory/([a-z-]+)$ /directory.php?s=$1 [L]
这将重写/directory/<something>
到/directory.php?s=<something>
, 哪里<something>
由一个或多个字符组成a
到z
和-
.<小时>。。。而不是给艾伦·沃克打电话。php
只有启用了多视图,才会发生这种情况。只有当alan-walker.php
作为真实文件存在(你说它不是)。默认情况下,它未启用,但如果启用,则可以通过调用.htaccess
文件:
Options -MultiViews
Change the Search-URL of WordPress - Add code in function.php and customize with directory
function fb_change_search_url_rewrite() {
if ( is_search() && ! empty( $_GET[\'s\'] ) ) {
wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( \'s\' ) ) );
exit();
}
}
add_action( \'template_redirect\', \'fb_change_search_url_rewrite\' );
Yes, it is also possible via htacces rules, but the source is an example for custom solutions on an redirect.
# search redirect
# this will take anything in the query string, minus any extraneous values, and turn them into a clean working url
RewriteCond %{QUERY_STRING} \\\\?s=([^&]+) [NC]
RewriteRule ^$ /search/%1/? [NC,R,L]