1

分解它,这就是我的站点地图的样子。

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 几乎没有经验。

在此先感谢,克里斯

4

1 回答 1

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].

于 2013-02-12T20:51:27.197 回答