HTACCESS - 重定向到不同的URL时重写URL

时间:2012-02-03 13:06:29

标签: .htaccess

假设我有一个网站有一个处理所有请求的页面(index.php)

现在,我想要整洁的URL,所以我可以使用.htaccess重定向到有效的URL -

第1部分 - 将所有请求重定向到索引页面,其中url字符串被“展开”为数组以进行解析:

RewriteCond $1 !^(index\.php|robots|files|blog|[0-9]+$)
RewriteRule ^(.*)$ index.php?page=$1 [L]

第2部分 - http://example.com/123456

RewriteRule ^([0-9]+)$ index.php?user=$1 [L]

第3部分 - http://example.com/blog/blog_title.html

RewriteRule ^blog/([a-z0-9-_]+)\.html$ index.php?blog=$1 [L]
RewriteRule ^blog/. /blog/ [R]

显然,在这里,我将博客文章重定向到index.php,博客变量是“.html”(blog_title)之前的部分,以及任何不符合要求的URL被转发到/ blog /目录。

我遇到的问题是我需要将URL重定向到“index.php?page = blog”,同时保持地址栏显示http://example.com/blog/

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

即使您自己找到了解决方案,我认为您可能对另一种解决方案感兴趣。这是我想出的地方: - )

RewriteCond $1 !^blog/.
RewriteCond $1 !^(index\.php|robots|files|[0-9]+$)
RewriteRule ^(.*)$ index.php?page=$1 [L]

也许您甚至可以将这两个条件合并到RewriteCond $1 !^(index\.php|robots|files|blog/.|[0-9]+$)中,但我不确定逻辑的优先级 - 或(即|)。

答案 1 :(得分:0)

我觉得自己很蠢......

最后添加了一行!

RewriteRule ^blog/ index.php?page=blog [L]