URL REWRITE

mumubangditu 2012-02-04 10:05:00
求一个URL地址转换,想把 localhost/wordpress/site/news?title=apple&num=1
转换成 localhost/wordpress/site/news/appre/1/

下面一段我的代码不起作用。求助,谢谢。


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
RewriteRule ^site/news\/([^/]+)\/([0-9]+)\/?$ site/news?title=$2&num=$3
</IfModule>
# END WordPress
...全文
39 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
wordpress 有自己的URL REWRITE规则。参见:
http://codex.wordpress.org/Rewrite_API/add_rewrite_rule
可以在主题function.php里添加:

function add_my_rule() {    
global $wp; //global 参数
$wp->add_query_var('title'); //添加 query 标签
$wp->add_query_var('num'); //添加 query 标签
add_rewrite_rule('site/news/(.+?)/([0-9]+)','index.php?pagename=site/news&title=$matches[2]&num=$matches[3]','top');
global $wp_rewrite;
$wp_rewrite->flush_rules();// 可以用flush_rules();刷新重命名规则,也可以通过后台的重设pemerlink来使新规则生效。重新生成.htaccess文件(注意重刷前务必要备份)
}
add_action('init', 'add_my_rule');
icy_csdn 2012-02-04
  • 打赏
  • 举报
回复
RewriteCond %{QUERY_STRING} ^title=([a-z]+)&num=([0-9]+)$
RewriteRule ^/wordpress/site/news$ /wordpress/site/news/%1/%2
mumubangditu 2012-02-04
  • 打赏
  • 举报
回复
没有作用,我确信 localhost/wordpress/site/news?title=apple&num=1 可以工作,但是换了你的代码,打开localhost/wordpress/site/news/appre/1/ 被转链到了 localhost/wordpress/site/ 谢谢。

24,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧