使用Mod_Rewrite重建目录

时间:2012-12-07 20:08:17

标签: .htaccess mod-rewrite

我确定这很简单,但无论我做什么,我似乎打破了我的档案。话虽如此,我想要做的是使用mod_rewrite设置一个双语网站。我将使用$ _Get来定义语言。然后我计划使用mod_rewrite使更多的SEO友好。因此,不要让每个页面都像这样:http://www.shiningashes.net/index.php?lg=enhttp://www.shiningashes.net/support.php?lg=en我希望网站像http://www.shiningashes.net/en/support一样。那么我怎么能得到的是,mod重写将url分解为块并重建它? (http:// www。根域 / 语言 / 文件目录名称

3 个答案:

答案 0 :(得分:1)

通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess目录下的DOCUMENT_ROOT中:

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

RewriteRule ^([A-Z]{2})/(.+)$ $2.php?lg=$1 [QSA,L,NC]

#EXternal redirect /support.php?lg=en from to /en/support
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^.]+)\.php\?lg=([^\s&]+) [NC]
RewriteRule ^ /%2/%1? [R=301,L]

答案 1 :(得分:0)

假设您唯一一次拥有两个字母的第一级目录是指定语言时,以下内容应该有效:

RewriteEngine on
RewriteBase /
RewriteRule ([A-Za-z]{2})/(.*) $2?lg=$1 [QSA, L]

答案 2 :(得分:0)

RewriteRule  ^/([a-z]+)/(.*)$ /$2.php?lg=$1

这应该将http://www.shiningashes.net/en/support重写为http://shiningashes.net/support.php?lg=en

此处有优秀文档:http://httpd.apache.org/docs/current/rewrite/intro.html