我无法理解为什么这不起作用。也许有人可以向我解释。
我有以下内容:
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之前,但这也不行。
非常感谢任何帮助。
基督教
答案 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
如果要结合两种行为,请注意循环。