我正在使用php脚本来匹配网站的请求链接。我目前正在'jcole/'
和'jcole'
进行匹配。不过,我希望能够在"jcole"
(.php|.html|.htm
),“jcole
/”和“jcole
”上进行匹配。我希望这个匹配对于文件扩展名可能是不可知的,也不关心名称中是否有句号。(例如我希望能够匹配“j.cole
”)
目前我的.htaccess
配置如下:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*\.html)$ /loadlink.php=link=$1 [L,QSA]
RewriteRule ^(.*)/?$ /loadlink.php?link=$1 [L,QSA]
答案 0 :(得分:0)
方式最好从php中完成所有这些操作。正则表达式无法做你想做的一切,尤其是必须处理名字中的任意时期。所以你只需要第二个规则:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /loadlink.php?link=$1 [L,QSA]
请注意,重写条件仅适用于紧随其后的RewriteRule
。
这会将所有内容发送到“link”参数,只删除任意尾部斜杠(如果存在)。由loadlink.php
脚本决定是否删除名称中的.php
或随机句点。