【问题标题】:Wordpress URL rewriting, parameters in URLWordpress URL 重写,URL 中的参数
【发布时间】:2013-09-10 07:43:33
【问题描述】:

我有一个接收 URL 参数的 Wordpress 页面,例如:

www.test.it/mypage/?param=1

我想让它使用

www.test.it/mypage/1/

我必须在 .htaccess 中写什么来实现它?


编辑:我使用的是 Apache,当前的 mod_rewrite 规则是这些(默认的 Wordpress 规则):

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

【问题讨论】:

  • 在 wp 中设置重写,看看它是如何做到的 ^_^...
  • 我已经设置好了...问题是我不知道如何使用参数并使它看起来像一个子目录,并且只在特定页面上。 Wordpress 重写了所有的 URL,这是一个更通用的解决方案,我需要一个更具体的解决方案

标签: wordpress .htaccess url rewrite


【解决方案1】:

试试这个

    RewriteEngine on
    RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?param=$1 [QSA]

更多详情

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

试试这个链接

http://www.hongkiat.com/blog/wordpress-url-rewrite/

希望这可行

【讨论】:

  • 不幸的是它不起作用,可能是因为Wordpess设置的预先存在的规则?
  • 第二个链接非常有帮助,+1。如果我解决了,我会发布解决方案。
  • 你是讽刺还是什么?无论如何,刚刚发布它。
【解决方案2】:

所以解决办法是:

add_action( 'init', 'add_mypage_rule' );

function add_mypage_rule(){
    add_rewrite_tag("%param%", '(\d+)');
    add_rewrite_rule('^mypage/([^/]*)/?','index.php?pagename=mypage&id=$matches[1]','top');
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多