Regex mod_rewrite.htaccess rewrite是否与文件扩展名匹配
我正在使用php脚本将请求链接匹配到站点。我目前正在匹配Regex mod_rewrite.htaccess rewrite是否与文件扩展名匹配,regex,apache,.htaccess,mod-rewrite,rewrite,Regex,Apache,.htaccess,Mod Rewrite,Rewrite,我正在使用php脚本将请求链接匹配到站点。我目前正在匹配'jcole/'和'jcole'。但是,我希望能够在“jcole”(.php.html |.htm)、“jcole/”和“jcole”上进行匹配。我希望匹配不知道文件扩展名是什么,也不关心名称中是否有句点。(例如,我希望能够在“j.cole”上匹配) 目前我的.htaccess配置如下: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_F
'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]
您最好从php内部完成所有这些工作。Regex不能做任何你想做的事情,尤其是必须处理名称中的任意句点。所以你只需要第二条规则: 请注意,重写条件仅适用于紧跟其后的
重写规则
这会将所有内容发送到“link”参数,仅删除任意尾随斜杠(如果存在)。要去掉名称中的.php
或随机句点,需要使用loadlink.php
脚本
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /loadlink.php?link=$1 [L,QSA]