我正试图在Joomla内部重写一些网址! 1.7打开SEF功能但似乎无法弄清楚:
存在以下SEF URL(菜单项):
website.com/local/amsterdam
我想要的是以下内容:
http://website.com/local/amsterdam/trends(不存在) 渲染 http://website.com/local/amsterdam?show=trends 同时仍显示第一个网址。
使用.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中做任何想法以及实现这一目标的任何不同解决方案!提前谢谢。
答案 0 :(得分:0)
虽然我最初在寻找mod-rewrite解决方案,但我已经找到了通过修改(核心)Joomla来实现相同目标的方法!路由器。
在包含/ 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时,会在页面http://www.website.com/local/amsterdam实际加载?show = trends参数时显示此网址。
对我来说,这是一个比使用mod-rewrite更灵活的解决方案,即使修改了核心文件。您可能希望使用某些条件语句仅在特定条件下运行此代码。希望它有所帮助。