.htaccess重定向以符号结尾的URL
我想重定向一个url,它在最后一个斜杠后有4-5个字符,并且在它的末尾有一个.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
+
。
(注意:符号的长度不计算在内)
我能够让它在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]