要将其分解,这就是我的站点地图的样子。
http://website.com/home
http://website.com/contact
http://website.com/support
使用我的index.php处理程序处理GET语句index.php?home,index.php?contact和index.php?support
目前,我的.htaccess看起来像这样:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /([^/]+)/?$ [NC]
RewriteRule .* index.php?%1 [L]
到目前为止,这种方法效果很好,但它有限。我正在集成一个我用PHP设计的迷你博客,它接受查询字符串看起来如此:
http://site.com/blog.php?y=2013&m=02&d=12&title=welcome-to-site-blog
现在,我想保留网站的根文件结构,并整合博客文件结构。希望看起来像这样:
http://site.com/2013/02/12/welcome-to-site-blog
任何帮助都会很棒。我理解条件语句是必需的,但我对htaccess几乎没有经验。
提前致谢, 克里斯
答案 0 :(得分:1)
你可以试试这个:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !blog\.php [NC]
RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/([^/]+)/([^/]+)/? [NC]
RewriteRule . blog.php?key1=%1&key2=%2&key3=%3&key4=%4 [L,NC]
无声地映射
http://site.com/var1/var2/var3/var4
要:
http://site.com/blog.php?key1=var1&key2=var2&key3=var3&key4=var4
假定所有varN
个字符串都是可变的,而脚本名称blog.php
是固定的,但可以是任何名称。如果更改,则替换规则集中的所有实例。
对于永久性和可见的重定向,请将[L,NC]
替换为[R=301,L,NC]
。