gpt4 book ai didi

php - 使用 Joomla SEF 重写自定义 url

转载 作者:可可西里 更新时间:2023-10-31 23:50:05 24 4
gpt4 key购买 nike

我正在全神贯注地在 Joomla! 内部重写一些 url! 1.7 启用了 SEF 功能但似乎无法弄清楚:

存在以下 SEF URL(菜单项):

website.com/local/amsterdam

我想要的是:

http://website.com/local/amsterdam/trends (不存在)渲染 http://website.com/local/amsterdam?show=trends同时仍然显示第一个 URL。

使用 .htaccess 可以实现以下效果(但不显示 SEF URL):

RewriteRule ^local/amsterdam/trends$ index.php?option=com_content&view=article&id=14&Itemid=176&show=trends [L]

但这不是:

RewriteRule ^local/amsterdam/trends$ local/amsterdam?show=trends [L]

我希望找到一个无需使用 id 的解决方案,以便它可以为所有城市动态呈现正确的页面。对于在 .htaccess 中执行此操作的任何想法以及实现此目的的任何不同解决方案,我将不胜感激!提前致谢。

最佳答案

虽然我最初是在寻找一个 mod-rewrite 解决方案,但我已经找到了一种通过修改(核心)Joomla!路由器。

在 includes/router.php 的第 47 行之后:

$path = substr_replace($path, '', 0, strlen(JURI::base(true)));

我添加了以下内容:

$subpages = array("trends","other"); //Add URL segments you want to reroute
foreach ($subpages as $subpage):
if (strstr($path, "/".$subpage)) :
$path = str_replace("/".$subpage, "", $path);
$vars['show'] = $subpage;
endif;
endforeach;

现在正在加载 http://www.website.com/local/amsterdam/trends , 此 URL 在页面 http://www.website.com/local/amsterdam 时显示实际上加载了 ?show=trends 参数。

对我来说,这是一个比使用 mod-rewrite 更灵活的解决方案,即使修改了核心文件。您可能希望使用一些条件语句仅在特定条件下运行此代码。希望对您有所帮助。

关于php - 使用 Joomla SEF 重写自定义 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7874332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com