我确信这很简单,但无论我做什么,我似乎都破坏了我的文件。话虽如此,我想做的是使用 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.根域/语言/文件目录名)
问问题
81 次
3 回答
1
通过启用 mod_rewrite 和 .htaccess httpd.conf
,然后将此代码放在您.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]
于 2012-12-07T20:20:52.817 回答
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
于 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 回答