.htaccess传递5个字母变量

时间:2012-05-28 10:40:38

标签: .htaccess

我想写.htaccess whcih将5个字母作为变量传递给页面 这5个字母是(小字母和数字)

例如,如果有人转到www.abc.com/etd01,我想将etd01传递给www.abc.com/link.php?link=etd01

所以我写了

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ LinkCode.php?LinkCode=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ LinkCode.php?LinkCode=$1

它正在运行,但如果有人打开www.abc.com/dswdrd那么它也传递变量。 我想要的是如果长度是5他们通过否则什么都不做

有可能??

我没有将.htaccess文件更改为

RewriteEngine On
RewriteRule ^([a-z0-9]{5})/?$ LinkCode.php?LinkCode=$1

但现在当我放置

RewriteRule ^([a-z0-9]{5})/?$ LinkCode.php?LinkCode=$1

在joomla .htaccess文件的末尾它不起作用

joomla .htaccess文件位于

之下
Options +FollowSymLinks

RewriteEngine On

RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

RewriteRule ^([a-z0-9]{5})/?$ LinkCode.php?LinkCode=$1

<Files ~ "\.vcf$">
ForceType text/x-vcard
</Files>

1 个答案:

答案 0 :(得分:2)

1)您有+,表示 1或更多。如果您想要5 完全,请将其替换为{5}

2)你说你想要“(仅限小字母和数字)”,但你的模板也会匹配大写字母以及减去-和下划线_。我已从模式中删除它们以符合您的要求。

3)我还将2个规则加入到1中(将使用和不使用尾部斜杠处理URL)。

RewriteEngine On
RewriteRule ^([a-z0-9]{5})/?$ LinkCode.php?LinkCode=$1