2013-03-11 96 views
0

我有一个使用.htaccess文件重写URL的问题。如何使用.htaccess文件重写URL

我不太了解用于编写我需要的htaccess文件的符号和语法,所以我非常感谢任何帮助。

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

.htaccess的QUERY 作为一个例子,我已经写了所谓的前10名的文章的Joomla扩展 标题别名网址是:前10-的Joomla的扩展

当我认为在前面的文章结束的网址是: http://www.pixelfire.com.au/website-and-graphic-design-blog/项/ 121-顶10的Joomla的扩展

我想通过删除清理这个网址:项/ 121- 我有很多其他项目的URL不同的ID号我会喜欢删除。所以我需要的代码需要删除我的博客中每个项目的ID号码。

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

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

非常感谢您提前。 Neil。

回答

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

重写规则的工作原理如下: 任何东西“重写规则”之后和之前的Space是我们的规则, 什么说Space后,是做什么

这样: RewriteEngine On启动发动机

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

^ - 开始在字符串 (.*)的begining - 得到你想要什么,并把它转变为可变$1 item/(\d\-)? - 确保后跟数字和破折号串item/存在,但不必。确保它占据了$2变量。问号说“可能在那里,但不一定”。 (.*) - 得到任何东西,如下,并将其存储在变量$3

里面那你说,重定向到: $1$3这concatinates存储在变量$1$3字符串(跳过项目/ 887878-)

最后括号。 R=301意味着,与301标题 和L rewirte说:这是你需要做的最后一件事。停在这里,重新加载。

+0

这是一个很好的答案,但我不认为这是他所需要的,因为所有的网址仍然会以旧的方式生成/显示,只有它们会被重定向。不幸的是,这个在joomla的解决方案并不简单 – 2013-03-11 10:07:56

+0

你是对的。但是,由于301,谷歌将确定正确的网址。所以尽管它没有做到这一点,但它是一个“步步为营”。我同意链接生成需要通过Joomla配置完成。 – 2013-03-11 10:24:14

+0

嗨Unamata, 非常感谢您的回复和解释。我现在明白你的工作是做什么的。 我试过了你通过发送的代码,但它不会更改URL。也许我错过了一些小的语法?还是需要更改您发送的代码? 非常感谢您的帮助和时间。 Neil。 – 2013-03-12 04:18:59

0

你想安装一个海基会组件如sh404sef或joomsef它覆盖joomla's默认路由器并为您提供更多的可选配置