我的博客的 .htaccess 设置为通过多个 URL 访问一个页面,并根据访问的 URL 显示不同的内容。
http://kn3rdmeister.com/category/blog/
http://kn3rdmeister.com/2012/
http://kn3rdmeister.com/2012/07/
所有人实际上都在使用http://kn3rdmeister.com/blog.php
.
.htaccess 文件非常方便,因为我只需要使用不同的查询字符串重定向到一页(几乎永远)。在和他们玩了很多之后,我所有的规则终于奏效了,我很高兴他们这样做了。好吧,几乎所有这些都有效。最后一个没有。
.htaccess:
RewriteEngine On
RewriteRule ^blog\.php$ /category/blog/ [R=301,L]
RewriteRule ^category/blog/?$ blog.php [L]
RewriteRule ^category/blog/page/?$ /category/blog/ [R=301,L]
RewriteRule ^category/blog/page/([0-9]*)/?$ /category/blog/?pagenum=$1 [L]
RewriteRule ^([0-9]{4})/?$ /category/blog/?year=$1 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/?$ /category/blog/?year=$1&month=$2 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/?$ /category/blog/?year=$1&month=$2&day=$3 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(^/]+)/?$ /category/blog/?url=http://kn3rdmeister.com/$1/$2/$3/$4/ [L]
最后一条规则应该重定向到每个博客文章的“永久链接”页面。由于每个 URL 都是唯一的,因此我使用帖子 URL 作为唯一标识符。本质上,它应该通过“blog.php”传递“url”查询字符串。PHP 脚本接管,看到“url”查询字符串已设置,然后在其行中加载具有该确切 URL 的唯一帖子。
该脚本有效,但重定向无效。直接前往
http://kn3rdmeister.com/blog.php?url=http://kn3rdmeister.com/2012/07/04/amsterdam-ave/
将加载正确的内容。然而,要去
http://kn3rdmeister.com/2012/07/04/amsterdam-ave/
没有。