htaccess RewriteRule URL

时间:2014-09-29 12:50:07

标签: .htaccess mod-rewrite

我使用htaccess重写我的网址,所以这就是我所拥有的:

RewriteRule ^([^-]+),([a-z0-9._.-]+),([^-]+) index.php?go=$1&lang=$2 [L]

和代码PHP:

function rewrite_seo($id, $title, $langs) {
    global $core;
    if($core->getSettings('seof')) {
        $result = $id.','.$langs.','.changeSigns($title).'';
    } else $result = '?go='.$id.'&lang='.$langs;
    return $result;
}

我的网址如下:

http://localhost/script/12,en,home

但希望看起来像这样:

http://localhost/script/en/home,12

如何修改此代码?

2 个答案:

答案 0 :(得分:0)

  

localhost / script / 12,en,home TO   本地主机/脚本/ EN /家,12

您是否尝试修改第4行?

把它: $result = $langs.'/'.changeSigns($title).','.$id;

请查看PHP.net网页http://php.net/manual/de/internals2.opcodes.concat.php

答案 1 :(得分:0)

您必须更改用PHP编写的链接,如上一个答案所述:

$result = $langs.'/'.changeSigns($title).','.$id;

然后更改htaccess中的匹配规则:

RewriteRule ^([a-z0-9._.-]+)\/([^-]+),([^-]+) index.php?go=$2&lang=$1 [L]

更好的是,您可以制作更具体的捕获正则表达式,因此更容易阅读和理解:

RewriteRule ^([a-z]+)\/([0-9]+),([^-]+) index.php?go=$2&lang=$1 [L]