RewriteRule与预期不符(由我)

时间:2011-04-04 08:41:38

标签: .htaccess mod-rewrite

我无法理解为什么这不起作用。也许有人可以向我解释。

我有以下内容:

http://www.mydomain.de/my-apache-tag.html 

应该重写为

http://www.mydomain.de/tag/my-apache

在我的.htaccess中我启用了这条规则:

RewriteRule ^/(.*)-tag\.html$ /tag/$1

在我的理解中,/和之前的所有内容都应该作为参数1。

但是上面会导致404.我甚至把域放在/ tag / $ 1之前,但这也不行。

非常感谢任何帮助。

基督教

1 个答案:

答案 0 :(得分:0)

根据apache版本,不需要前导斜杠。 (如果您希望能够匹配这两种情况,可以放置/?)请参阅@Jeff Parker评论。

此外,如果您希望在键入http://www.mydomain.de/tag/my-apache时在浏览器中将网址显示为http://www.mydomain.de/my-apache-tag.html,则应添加[R]标记以重定向。

当然,服务器上的文件应该是my-apache目录中的名称tag/。或者你会有404错误。

如果您希望客户输入http://www.mydomain.de/tag/my-apache并投放http://www.mydomain.de/my-apache-tag.html,那么您的规则就错了,应该是:

RewriteRule ^tag/(.*)$ /$1-tag.html

如果要结合两种行为,请注意循环。