Joomla htaccess重写url - 参数必须用数字索引 - 为什么?

时间:2012-10-04 09:45:07

标签: joomla rewrite

这是第一次提出问题,所以不要对我这么难。谢谢。

我目前正在设置一个joomla网站。我在模板/ index.php中创建了一个页面,一个新模板和一个模块,我调用了我的模块。

有效的原始网址如下: 的index.php / DANH-SACH游戏?gt_name = game_mang_xa_hoi

danh-sach-game:是页面。 game-mang-xa-hoi:是模块的输入参数。

Everythings可以找到,但我想重写url:

DANH-SACH游戏/游戏芒XA恺

所以我用内容创建了一个.htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^danh-sach-game/(.*)$ index.php/danh-sach-game?gt_name=$1 [L]
</IfModule>

现在是#34; MAGIC&#34; 如果我输入网址: DANH - 国家文物局游戏/游戏芒XA-海 然后Joomla发送消息&#34;发生了错误。找不到请求的页面。&#34;

但是如果我用这样的数字索引参数: danh-sach-game / 1-game-mang-xa-hoi(注:数字1)。 然后它找到了工作。任何一个数字的参数索引都可以找到。

我将url重写为测试文件(用test.php替换index.php)而不是页面test.php接收参数asuas,带或不带数字索引参数。

1 个答案:

答案 0 :(得分:0)

这是因为Joomla和大多数Joomla扩展使用内容的ID列作为标识符来查找数据库。一些SEF工具(例如AceSef,sh404Sef)提供了使用别名(数字和连字符后面的文本)进行查找的工具,但是需要额外的数据库查询成本(它们将在内部查询正确的URL)。 / p>

将处理URL最后一部分中的数字,并将其作为您正在查看的特定页面/内容的ID传递。这是在特定组件的router.php文件中完成的。因此,请检查您正在使用的组件的router.php文件,以检查URL的解析方式。