0

我正在使用 wordpress 漂亮的永久链接,我的 .htaccess 文件如下所示:

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

# END WordPress

我正在使用一种显示带有 url 变量的索引页面的表单,如下所示:

http://www.nafham.com/?edu_year_selectionreal=79&semester_selectionreal=15&subject_selectionreal=80

我想让网址显示如下:

http://www.nafham.com/79/15/80

有可能这样做吗?为了不让wordpress已经应用的重写条件出错,最好的方法是什么?

4

3 回答 3

3

因为您已经设置了重写,所以您需要做的就是解析 index.php 中的 url

if (preg_match("#(\d+)/(\d+)/(\d+)#", $_SERVER['REQUEST_URI'], $regs)) {

    $edu_year_selection_real = $regs[1]
    $semester_selectionreal = $regs[2];
    $subject_selectionreal = $regs[3];
}
于 2012-04-15T10:53:50.933 回答
0

添 像这样到.htaccess:

RewriteRule ^/([0-9-]+)/([0-9-]+)/([0-9-]+)$ index.php?var1=$1&var2=($2)&var3=($3) [L]
于 2012-04-15T10:57:49.403 回答
0

您需要在 Wordpress 中设置自定义重写规则,否则 Wordpress 会将您带到错误页面。

这是设置自定义重写规则的示例:

      <?php

  add_filter('rewrite_rules_array', 'insert_custom_rules');
  function insert_custom_rules($rules)
  {
$newrules = array();
$newrules['(.+?)/(.+?)/(.+?)/?$'] =
'index.php?edu_year_selectionreal=$matches[1]&semester_selectionreal=$matches[2]&subject_selectionreal=$matches[3]';
return $newrules + $rules;
  }
  ?>

希望这会有所帮助。

于 2012-04-15T13:59:15.587 回答