2013-06-05 312 views
3

我有一个blog.php的页面,应该让所有这些请求重定向:的.htaccess重定向到一个页面

www.site.com/blog去blog.php的

www.site.com/blog/id-of-an-entry#goes到blog.php的?ID =一个条目ID-的-

另外国际例如法语版本:

www.site.com/fr/blog *#至blog.php的?LANG = FR

www.site.com/fr/blog/id-of-entry*q若要blog.php?lang = fr & id = id-of-entry

.htaccess更有效率和有效的cond /规则是什么?我做了很多尝试,但最终走在圈子或许多专业规则:-)感谢您的任何见解!

回答

2

启用mod_rewrite的,并通过httpd.conf的.htaccess,然后把这个代码在你.htaccessDOCUMENT_ROOT目录:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule ^blog/([^/]+)/?$ /blog.php?id=$1 [L,NC,QSA] 

RewriteRule ^blog/?$ /blog.php [L,NC,QSA] 

RewriteRule ^([^/]+)/blog/([^/]+)/?$ /blog.php?lang=$1&id=$2 [L,NC,QSA] 

RewriteRule ^([^/]+)/blog/?$ /blog.php?lang=$1 [L,NC,QSA] 
+0

它的作品非常漂亮,谢谢。 – Joan

+1

让我添加一个相关的问题,同时测试我在http://localhost/site/blog.php。你会怎么做才能在这里工作呢? (localhost/site/blog/the-id重定向到localhost/site/blog.php?id?the-id) – Joan

+2

@Juan:只要有这样的规则:'RewriteRule ^(site/blog)/([^/] +)/?$ /$1.php?id=$2 [L,NC,QSA]'。 – anubhava

1
我不使用这个regulary所以可以有更好的办法

但是这可能会帮助你。规则是这样的。 ()是你想要匹配的变量。比你可以参考他们的$1等等。例如news/local会将它们重定向到文件news-local.php,您可以使用相同的系统来匹配您获得的变量。

相关问题