.htaccess 使用Mod_Rewrite重建目录

.htaccess 使用Mod_Rewrite重建目录,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我相信这很简单,但不管我做什么,我似乎都破坏了我的文件。话虽如此,我想做的是使用mod_rewrite建立一个双语网站。我将使用$\u Get来定义语言。然后我计划使用mod_rewrite使搜索引擎优化更加友好。因此,与其让每个页面都像这样:或者我希望网站像这样。那么我如何才能得到这样的信息,mod rewrite将url分解成块并重新构建它呢?(http://www. 根域/语言/文件目录名)假设只有在指定语言时才有一个两个字母的一级目录,以下操作应该有效: RewriteEngine on

我相信这很简单,但不管我做什么,我似乎都破坏了我的文件。话虽如此,我想做的是使用mod_rewrite建立一个双语网站。我将使用$\u Get来定义语言。然后我计划使用mod_rewrite使搜索引擎优化更加友好。因此,与其让每个页面都像这样:或者我希望网站像这样。那么我如何才能得到这样的信息,mod rewrite将url分解成块并重新构建它呢?(http://www. 根域/语言/文件目录名)

假设只有在指定语言时才有一个两个字母的一级目录,以下操作应该有效:

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

通过
httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放入
文档根目录下的
.htaccess

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]
这应该重写
http://www.shiningashes.net/en/support
http://shiningashes.net/support.php?lg=en


这里的文档非常好:

您已经知道如何使用mod_rewrite,为什么不阅读这些文档呢?我已经看过了,但我似乎不知道如何做我正在尝试的事情,所以我希望在这方面比我有更多经验的人能帮上忙。我已经想出了如何手动为每个目录执行此操作,但我希望有一段时间的解决方案。我的问题是,我没有找到一种方法来获取文件名,解析扩展名,然后将其添加回url。谢谢,这很有效。我想知道,我如何获得它,以便$2.php?lg=$1版本重定向到^([A-Z]{2})/(.+)$版本?我只是在学习如何处理这一切。我查过了,但我试过的东西都不管用。。我尝试使用RewriteCond并对主机和参考点进行测试,但似乎无法使其重定向。我有谷歌如何做这样的事情,阅读文件。。我只是通过看一个我正在尝试做的工作示例和调试我所做的工作来学习最好的方法。
RewriteRule  ^/([a-z]+)/(.*)$ /$2.php?lg=$1