如何创建自定义URL用户友好?

时间:2017-04-25 06:16:36

标签: php wordpress

我有一个非常特殊的要求,希望我能解释它而不会太混乱。我创建了一个页面模板,列出了一些州的城市,让我们说URL是这样的:http://www.example.com/states/?q=ohio

我想像http://www.example.com/states/ohio/

那样做

我还使用了 add_rewrite_rule ,但它没有给我我想要的输出。

所以我该如何解决?

2 个答案:

答案 0 :(得分:0)

它实际上不是PHP,它是使用mod_rewrite的apache。发生的事情是该人请求链接http://www.example.com/states/ohio/,然后apache使用重写规则将其剪切,使其看起来像这样http://www.example.com/states/?q=ohio到服务器。您可以在此处找到更多信息:Rewrite Guide

答案 1 :(得分:0)

Web服务器端

由于您正在运行Apache,因此您可以创建一个RewriteRule来将URI重写为应用程序理解的内容,但为最终用户提供虚荣/漂亮的URI。

例如;

RewriteEngine On

#Rewrites a request like http://www.example.com/states/ohio/ to http://www.example.com/states/?q=ohio at application level
#Having the /? at the end makes the ending slash optional
RewriteRule ^states/([^\/]+)/?$ /states/?q=$1 [L]

使用http://htaccess.mwl.be/

进行测试

Wordpress方

您可以根据需要使用add_rewrite_rule重写网址

add_rewrite_rule('^states/([^\/]+)/?$', 'states/?q=ohio$matches[1]', 'top');

否则,您必须手动修改锚标记(href)上的每个<a />元素,使其指向/states/ohio/而不是/states/?q=ohio