我有一个blog.php页面应该从所有这些请求中重定向:
www.site.com/blog #转到blog.php
www.site.com/blog/id-of-an-entry #goes to blog.php?id = id-of-an-entry
还有法语的国际化版本:
www.site.com/fr/blog *#to blog.php?lang = fr
www.site.com/fr/blog/id-of-entry * #to blog.php?lang = fr& id = id-of-entry
什么是.htaccess更有效和更有效的cond /规则?我已经做了很多尝试,但结束了走路或与许多专门的规则:-)感谢您的任何见解!
答案 0 :(得分:2)
通过httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放在.htaccess
目录下的DOCUMENT_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]
答案 1 :(得分:1)
我没有使用这个常规,所以可以有更好的方法,但这可以帮助你。规则就是这样的。 ()
中的变量与您想要匹配的变量相对应。你可以通过$1
等来引用它们。例如,news/local
会将它们重定向到文件news-local.php
,您可以使用相同的系统来匹配变量。
RewriteRule ^([a-z]+)/([a-z]+)$ $1-$2.php