-1

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

4

3 回答 3

1

通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_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]
于 2012-12-07T20:20:52.817 回答
0
RewriteRule  ^/([a-z]+)/(.*)$ /$2.php?lg=$1

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

优秀的文档在这里: http ://httpd.apache.org/docs/current/rewrite/intro.html

于 2012-12-07T20:25:34.560 回答
0

假设您只有在指定语言时才会有两个字母的一级目录,那么以下应该可以工作:

RewriteEngine on
RewriteBase /
RewriteRule ([A-Za-z]{2})/(.*) $2?lg=$1 [QSA, L]
于 2012-12-07T20:15:23.497 回答