如何使用URL结构调用PHP代码

时间:2018-03-05 作者:Graham Brown

我想用这个:

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)

2 个回复
SO网友:MrWhite

我想alan-walker 这只是一个示例,可以是这种形式的任何字符串。(或者就像你的例子一样,它只是字面上的“艾伦·沃克”

你可以用一个RewriteRule 在里面.htaccess <在WordPress前控制器之前。例如:

RewriteRule ^directory/([a-z-]+)$ /directory.php?s=$1 [L]
这将重写/directory/<something>/directory.php?s=<something>, 哪里<something> 由一个或多个字符组成az-.

<小时>。。。而不是给艾伦·沃克打电话。php

只有启用了多视图,才会发生这种情况。只有当alan-walker.php 作为真实文件存在(你说它不是)。默认情况下,它未启用,但如果启用,则可以通过调用.htaccess 文件:

Options -MultiViews

SO网友:Ravi Patel

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]

enter image description here

结束

相关推荐