如何使用.htaccess文件重写URL

时间:2013-03-11 08:26:00

标签: .htaccess mod-rewrite joomla2.5

我有一个问题与使用.htaccess文件重写网址有关。

我真的不明白为htaccess文件编写我需要的符号和语法,所以我非常感谢任何帮助。

系统信息 Joomla 2.5.9网站 我使用K2 2.6.2来创建我的内容 当我使用K2为我的博客创建内容时,我完成了“标题别名(URL)'

HTACCESS QUERY 作为一个例子,我写了一篇名为Top 10 Joomla Extensions的文章 标题别名URL为:top-10-joomla-extensions

当我在前端查看文章时,URL是: http://www.pixelfire.com.au/website-and-graphic-design-blog/项/ 121 - 的顶部10的Joomla的扩展

我想通过删除 item / 121 - 来清理此网址 我还有许多其他项目网址,我想删除不同的ID号码。所以我需要的代码需要删除我博客中每个项目的ID号。

每个博客项目URL都有单词item / item ID number。示例项目/ 121- 理想情况下,我想用短划线删除单词项目和项目编号。

希望有人可以帮助我编写.htaccess代码来实现这一点并向我解释它是如何工作的。

非常感谢您提前。 尼尔。

2 个答案:

答案 0 :(得分:0)

RewriteEngine On
RewriteRule ^(.*)item/(\d+\-)?(.*) /$1$3 [R=301,L]

RewriteRule的工作原理如下: “RewriteRule”之后和Space之前的任何内容都是我们的规则, 在说Space之后的任何事情都是做什么的

所以: RewriteEngine On打开引擎

RewriteRule告诉apache,启动魔法。 其余的是正则表达式声明。

^ - 从字符串的开头开始 (.*) - 获取您想要的任何内容并将其放入变量$1 item/(\d\-)? - 确保字符串item/后跟数字和短划线存在,但不是必须的。确保它占用$2变量。问号说“可能在那里,但不必”。 (.*) - 获取后续内容,并将其存储在变量$3

然后你说,重定向到: $1$3用于汇总存储在变量$1$3中的字符串(跳过项目/ 887878 - )

最后是括号。 R=301表示带有301标题的重写 L说:这是你需要做的最后一件事。停在这里并重新加载。

答案 1 :(得分:0)

您想要安装一个sef组件,例如sh404sef或joomsef,它会覆盖joomla的默认路由器,并为您提供更多配置选项