.htaccess重定向以符号结尾的URL

.htaccess重定向以符号结尾的URL,.htaccess,redirect,url-redirection,.htaccess,Redirect,Url Redirection,我想重定向一个url,它在最后一个斜杠后有4-5个字符,并且在它的末尾有一个+。 (注意:符号的长度不计算在内) 我能够让它在4-5个字符的条件下工作: RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /(index\.php)?\?id=([0-9a-zA-Z]{4,5}+)([^\ ]*) RewriteRule ^ /%3?%4 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQU

我想重定向一个url,它在最后一个斜杠后有4-5个字符,并且在它的末尾有一个
+
。 (注意:符号的长度不计算在内)

我能够让它在4-5个字符的条件下工作:

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /(index\.php)?\?id=([0-9a-zA-Z]{4,5}+)([^\ ]*)
RewriteRule ^ /%3?%4 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z]{4,5}+)/?$ someFile.php?id=$1 [L,QSA]
虽然我尝试了条件
([0-9a-zA-Z\+]{4,5}+)
,但无法使其对
+
符号起作用。此外,我认为如果最后没有
+
符号,条件
([0-9a-zA-Z\+]{4,5}+)
仍将起作用

示例:

发件人:

致:


注意:仅当结尾有
+
时才重定向。

您需要转义
+
,因为它是一个特殊的正则表达式符号

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z]{4,5})\+?/?$ someFile.php?id=$1 [L,QSA]

这些URL的示例是什么?@anubhava查看编辑。@anubhava查看答案上的注释出于某种原因,我可以在答案上使用
@
包含您的用户名。。感谢mate不知道在条件后指定
+
符号会起作用,谢谢它起作用。)使用此规则:
RewriteRule^([0-9a-zA-Z]{4,5})[+*]?/?$someFile.php?id=$1[L,QSA]
http://example.com/someFile.php?id=1234
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z]{4,5})\+?/?$ someFile.php?id=$1 [L,QSA]