CMSMS htaccess重写ListIt2模块

时间:2014-12-03 17:43:58

标签: apache .htaccess mod-rewrite url-rewriting

我正在创建一个CMS制作简单版本1.11.11的网站,我使用listit2模块版本1.4.1。

现在,此模块只能生成以下格式的网址:
http://example.com/listit2/item-alias/page-id

现在,我不关心用于显示正确模板的页面ID,
但由于这是一个多语言网站,我希望listit2能够在我的(虚拟)语言文件夹后面显示:
http://example.com/lang/listit2/item-alias/page-id

所以我在htaccess文件中添加了2条重写行, 就在CMSMS的一般重写规则之前。

    RewriteCond %{HTTP_HOST} ^lang/listit2 [NC]
    RewriteRule ^lang/listit2(.*)$ listit2$1

    # Rewrites urls in the form of /parent/child/
    # but only rewrites if the requested URL is not a file or directory

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)$ index.php?page=$1 [QSA]

但这似乎不起作用,因为它生成摘要概述而不是像http://example.com/listit2/page-id

中的内容那样的详细信息页面

我怎么解决这个问题?

2 个答案:

答案 0 :(得分:0)

这就是诀窍

    
    RewriteEngine on
    RewriteBase /

    #Virtual folders for listit2
    RewriteRule ^lang/listit2(.*)$ index.php?page=listit2$1

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)$ index.php?page=$1 [QSA]
    

答案 1 :(得分:0)

这不是一个.htaccess问题。这是ListIt2模块中的URL生成问题。

在摘要模板中,您需要将自己的自定义网址放在href中,而不是使用detail_url的标准变量。

例如类似的东西(此代码不是测试,检查实际变量的文档)

<a href="{root_url}/lang/listit2/{$item->item_alias}/{$content_id}" title="Read more about {$item->title}">Read More...</a>