假设我有一个网站有一个处理所有请求的页面(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/
任何帮助将不胜感激!
答案 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]