0

可能重复:
使用 PHP + .htaccess 访问 GET 变量

我正在尝试编写 .htaccess 和 PHP 脚本的组合来执行以下操作:

如果 URL = http://mysite.com/XXXXXXX 重定向到http://mysite.com/subdir/index.php?var=XXXXXXX

其中 XXXXXXX 是长度为 7 个字符的任何字母数字字符串,没有 .php 扩展名。

这是我目前所拥有的

RewriteEngine On
RewriteRule ^(.*)$ index.php?code=$1
RewriteRule ^subdir/(.*)$ index.php?code=$1 [L,QSA]

任何帮助将不胜感激。

更新:感谢您的回复,链接有所帮助,但我认为我遇到问题的地方是条件。

RewriteEngine On
RewriteCondition [HAS 7 ALPHANUM CHARS]  <--HERE
RewriteRule ^(.*)$  /subdir/index.php?code=$1 [QSA,L]
4

1 回答 1

1

尝试简单:

RewriteEngine On
RewriteRule (^|/)([a-z0-9]{7})/?$ index.php?code=$2 [L,QSA,NC]

正则表达式(^|/)([a-z0-9]{7})/?$确保匹配 URI 的最后一部分,在最后一部分之后/并且正好有 7 个数字/字母。

所以这些将匹配:

/123abcD
/123abcD/
/something/098eif2
/foo/bar/path/1q2w3rT
于 2012-08-27T22:26:20.740 回答