我想写.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>
答案 0 :(得分:2)
1)您有+
,表示 1或更多。如果您想要5 完全,请将其替换为{5}
。
2)你说你想要“(仅限小字母和数字)”,但你的模板也会匹配大写字母以及减去-
和下划线_
。我已从模式中删除它们以符合您的要求。
3)我还将2个规则加入到1中(将使用和不使用尾部斜杠处理URL)。
RewriteEngine On
RewriteRule ^([a-z0-9]{5})/?$ LinkCode.php?LinkCode=$1