当前位置: 首页 > 知识库问答 >
问题:

ListIt2模块的CMSMS htaccess重写

钱繁
2023-03-14

我创建一个网站与CMS的简单版本1.11.11和我使用listit2模块版本1.4.1.

现在这个模块只能生成如下形式的URL:
http://example.com/listit2/item-alias/page-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个答案

艾文斌
2023-03-14

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

在摘要模板中,您需要将自己的自定义url放在href中,而不是使用标准变量作为详细信息url。

例如这样的东西(这段代码不是测试,检查实际变量的留档)

<a href="{root_url}/lang/listit2/{$item->item_alias}/{$content_id}" title="Read more about {$item->title}">Read More...</a>
谷梁宁
2023-03-14

这就管用了

    
    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]
    
 类似资料:
  • 每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。这在一个场合特别有用——就如前面所提到的,当一个模块被第一次输入的时候,这个模块的主块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的__name__属性完成。 使用模块的__name__ 例8.2 使用模块的__name__ #!/usr/bin/python

  • 问题内容: 著名的Angular App Structure最佳实践推荐 博客文章概述了新推荐的angularjs项目结构,该项目结构现在是面向组件而非功能的,或者在最初的github问题中命名为“ Organized by Feature”。 博客文章建议每个模块中的每个文件应以模块名称开头,例如: 问题是:与在功能上命名文件相反,在模块的每个文件名内重复模块名称有什么好处和坏处?例如: 我问的

  • 问题 你想重新加载已经加载的模块,因为你对其源码进行了修改。 解决方案 使用imp.reload()来重新加载先前加载的模块。举个例子: >>> import spam >>> import imp >>> imp.reload(spam) <module 'spam' from './spam.py'> >>> 讨论 重新加载模块在开发和调试过程中常常很有用。但在生产环境中的代码使用会不安全,因

  • 使用,我在基本模板中定义了一个,其中包含默认内容。在某些情况下,我希望这个块为空,所以我想我可以重新定义它的名称,并使它不包含以下内容: 不知何故,Go似乎认为这个定义是“零”,并且仍然会呈现默认内容,除非我将任何非空白内容放入定义中。 我在Golang repo上发现了这个问题,它在一个游乐场示例中很好地描述了同样的事情: 奇怪的是,这个问题提到它是固定的(如果我理解正确的话,它在1.8.1中着

  • 我有一个原型项目,它的外观如下所示(有两个模块,和): 并且,当我使用工件id为“infra”的原型生成一个项目时,它应该生成如下结构: 不起作用的是,在父pom.xml中,我包含了以下模块: 这些模块条目不会被重命名为类似于(在生成时): 这就是我想要的。 知道怎么做吗,谢谢。 更新我在这里按要求添加元数据xml文件,但我不想修改archetype-metadata.xml文件。因为我想使用cr

  • 我试图解决这个错误:ModuleNotFoundError:没有名为“torch”的模块,我用这个命令安装了Pytorch:,但是当我导入torch时,我得到了上面的消息。