Php 无基名称的htaccess重定向
我正在使用htaccess处理一些URL,如下所示Php 无基名称的htaccess重定向,php,regex,apache,.htaccess,Php,Regex,Apache,.htaccess,我正在使用htaccess处理一些URL,如下所示 B)https://www.example.com/online/development/id 规则: RewriteRule ^online/(.*)/(.*)$ filename.php?key=$2 [L] 但现在我想使用一些URL,如下所示:- https://www.example.com/development/id 我怎样才能做到这一点?您可以使用此规则- RewriteRule ^([\w-]+)/([\w-]+)$ fi
B)https://www.example.com/online/development/id
规则:
RewriteRule ^online/(.*)/(.*)$ filename.php?key=$2 [L]
但现在我想使用一些URL,如下所示:-
https://www.example.com/development/id
我怎样才能做到这一点?您可以使用此规则-
RewriteRule ^([\w-]+)/([\w-]+)$ filename.php?key=$2 [QSA,L]
你可以使用这个规则-
RewriteRule ^([\w-]+)/([\w-]+)$ filename.php?key=$2 [QSA,L]
您的正则表达式匹配:
-开始输入(主机后的部分)^
-文字字符序列online/
online/
-任何0+字符,尽可能多,直到最后一个(.*)
-斜杠/
-第2组:任何零个或多个字符,直到(.*)
-输入结束$
RewriteRule ^[^/]*/([^/]*)$ filename.php?key=$1 [L]
[^/]+
匹配1+个字符,而不是/
。由于您没有使用组1,我建议删除第一组(
和)
,并在替换中使用$1
现在,正则表达式匹配:
-开始输入^
-除[^/]*
之外的零个或多个字符(/
称为否定字符类)[^…]
-斜杠/
-第1组:见上文([^/]*)
-输入结束$
-开始输入(主机后的部分)^
-文字字符序列online/
online/
-任何0+字符,尽可能多,直到最后一个(.*)
-斜杠/
-第2组:任何零个或多个字符,直到(.*)
-输入结束$
RewriteRule ^[^/]*/([^/]*)$ filename.php?key=$1 [L]
[^/]+
匹配1+个字符,而不是/
。由于您没有使用组1,我建议删除第一组(
和)
,并在替换中使用$1
现在,正则表达式匹配:
-开始输入^
-除[^/]*
之外的零个或多个字符(/
称为否定字符类)[^…]
-斜杠/
-第1组:见上文([^/]*)
-输入结束$
这意味着路径中只能有一个斜杠。尝试
^([^/]*)/([^/]*)$
请记住,在您的解决方案中,开发是一个动态词,我需要在哪里放置代码的基本文件(file.php)是什么?应该用我的正则表达式替换的只是您的正则表达式:RewriteRule^([^/]*)/([^/]*)$filename.php?key=$2[L]
[^/]+
匹配除/
之外的1+字符。尝试^([^/]*)/([^/]*)$
请记住,在您的解决方案中,开发是一个动态字,我需要在其中放置代码的基本文件(file.php)是什么?应该用我的正则表达式替换的只是您的正则表达式:RewriteRule^([^/]*)/([^/]*)/)$filename.php?key=$2[L]
[^/]+
匹配1+个字符,而不是/
。这里[\w-]+有什么用,请解释一下对不起,我找不到你,如果要解释的话,我们只匹配了两个匹配组,没有在线url,然后将第二个匹配组结果附加到你的文件中。我只是要求使用\w-在正则表达式中匹配字符范围{A-Za-z0-9}规则中有-。我们可以在url中使用特殊字符,如a、è等吗?这里[\w-]+有什么用,请解释抱歉,我找不到你,如果要解释的话,我们只匹配了两个匹配组,而没有在url中联机,然后将第二个匹配组结果附加到您的文件中。我只是要求在规则中使用\w-in-regex匹配字符范围{A-Za-z0-9}与-匹配。我们可以在url中使用特殊字符,如A、è等吗?