php - 我想将我的 joomla URL 转换为用户友好的 URL

标签 php .htaccess joomla seo

我想将具有组件/id 的 joomla(2.5 版)URL 结构转换为用户友好或 SEO 友好的 URL。 ?option=com_mycomponent&view=myview&id=98 进入 myarticle.php 或 sometext.php

我确实有一些自定义组件也需要更改。

有人能帮忙吗?

最佳答案

我使用 MijoSEF 组件将 URL 自定义为用户友好的 URL。对于自定义组件,我在每个自定义组件中都创建了 rounter.php。以便它处理 joomla url 结构中的 SEO 友好 url。毕竟,URL 中的每个操作都需要菜单项

http://miwisoft.com/joomla-extensions/mijosef-joomla-seo-sef-urls

点击以上网址下载免费版并安装 安装后,您可以在您的网站上看到组件列表。只有当你有路由器文件时,你的组件才会被列出。 选择组件后,您可以更改网站中的每个 URL。 请参阅我根据要求使用的示例路由器。

<?php
/**
 * @package     Joomla.Site
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

jimport('joomla.application.categories');

/**
 * Build the route for the com_content component
 *
 * @param   array   An array of URL arguments
 * @return  array   The URL arguments to use to assemble the subsequent URL.
 * @since   1.5
 */
function MycomponentBuildRoute(&$query)
{
    $segments   = array();
    if (isset($query['Itemid'])) {
        $segments[] = $query['Itemid'];
        unset($query['Itemid']);
    }   
    if(isset($query['task'])) {
        $segments[] = $query['task'];
        unset($query['task']);
    }
    if(isset($query['id'])) {
        $db = JFactory::getDbo();
        $aquery = $db->setQuery($db->getQuery(true)
            ->select('alias')
            ->from('#__content')
            ->where('id='.(int)$query['id'])
        );
        $alias = $db->loadResult();
        $query['id'] = $query['id'].':'.$alias;
        $segments[] = $query['id'];
        unset($query['id']);
    }   
    return $segments;
}

/**
 * Parse the segments of a URL.
 *
 * @param   array   The segments of the URL to parse.
 *
 * @return  array   The URL attributes to be used by the application.
 * @since   1.5
 */
function MycomponentParseRoute($segments)
{
    $vars = array();
    $vars['Itemid'] = $segments[0];
    $vars['task']   = $segments[1];
    $vars['id'] = $segments[2];
    return $vars;
}

关于php - 我想将我的 joomla URL 转换为用户友好的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27654951/

相关文章:

php - 从 PHP MySQL 结果对象转换为结果资源(OO 到过程)

javascript - 我的 Javascript 代码没有在 laravel 中运行

php - 解密在android中加密的php文件

php - 如果我输入域名重定向到 index.php

Joomla 2.5 显示错误的日期时间

joomla - JOOMLA中如何获取头部数据?

php - 如何在同一个 PHP 页面上显示两个不同的 MySQL 表

.htaccess - Apache 2.4 .htaccess 文件不拒绝访问

apache - Web 服务器不断重定向到 HTTP

css - 将链接添加到 CSS 样式表