首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > Apache >

URL REWRITE解决方案

2012-03-11 
URL REWRITE求一个URL地址转换,想把localhost/wordpress/site/news?titleapple&num1转换成localhost/wor

URL REWRITE
求一个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

[解决办法]
wordpress 有自己的URL REWRITE规则。参见:
http://codex.wordpress.org/Rewrite_API/add_rewrite_rule
可以在主题function.php里添加:

PHP code
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'); 

热点排行