我有以下.htaccess重写条件从地址栏中删除.php扩展名:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.php$ /$1 [R=301,L]
如果URL不包含关键字,我希望这只能应用此重写。我尝试过以下(下面)和一些变体,并没有成功。我确定我错过了一面旗帜或一些明显的正则表达式,但我一直在摸不着头脑,想着怎么做。
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^((?!keyword).)*\.(php)$ /$1 [NC,R=301,L]
效果将是:
http://www.example.com/page.php => http://www.example.com/page
http://www.example.com/sub_folder/page.php => http://www.example.com/sub_folder/page
http://www.example.com/keyword/page.php => http://www.example.com/keyword/page.php
答案 0 :(得分:0)
您可以尝试以下规则:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_URI} !keyword [NC]
RewriteRule ^(.+?)\.php$ /$1 [R=301,L,NC]