用于路由哈希网址的htaccess / php解决方案

时间:2012-08-27 22:19:57

标签: php regex .htaccess url-rewriting

  

可能重复:
  Access GET variables with PHP + .htaccess

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

如果网址= 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]

1 个答案:

答案 0 :(得分: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