我在 mod_rewrite 上遇到了一些困难。 我该如何编写规则以决定以下内容:
如果我浏览/en/page/page,我想将其重写为:index.php?language=en&page=/page 但是,如果我只浏览/page,我想将其重写为:index.php?page=/page 这种情况是否可能?
编辑:/page 只是一个随机的动态页面名称,它也可以是任何名称。
我需要一个规则来检查类似/se == 一个字符串,而不是超过2个字符的 /page --> index.php?lang=se&page=/page,如果浏览的是页面/page,它会注意到/page==长度大于2个字符并重写为index.php?page=/page 编辑2: 找到了我的问题的答案:
RewriteEngine On RewriteBase /
## 检查是否不是文件名或目录名 RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d
## 重写规则 RewriteRule ^(.{2})/(.*)$ index.php?lang=$1&page=$2 [L] RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
如果我浏览/en/page/page,我想将其重写为:index.php?language=en&page=/page 但是,如果我只浏览/page,我想将其重写为:index.php?page=/page 这种情况是否可能?
编辑:/page 只是一个随机的动态页面名称,它也可以是任何名称。
我需要一个规则来检查类似/se == 一个字符串,而不是超过2个字符的 /page --> index.php?lang=se&page=/page,如果浏览的是页面/page,它会注意到/page==长度大于2个字符并重写为index.php?page=/page 编辑2: 找到了我的问题的答案:
RewriteEngine On RewriteBase /
## 检查是否不是文件名或目录名 RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d
## 重写规则 RewriteRule ^(.{2})/(.*)$ index.php?lang=$1&page=$2 [L] RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]