我想删除应用程序中的多个扩展程序。
例如,在名为directory
的目录中,我有这些文件
我想访问这些没有扩展名的文件,比如
我找到了这段代码,用于删除单个扩展名。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.cgi [NC,L]
当我尝试使用此代码添加更多扩展时,只有第一个扩展才能正常工作。我将上面的内容扩展为
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.cgi [NC,L]
RewriteRule ^([^\.]+)$ $1.html [NC,L]
RewriteRule ^([^\.]+)$ $1.php [NC,L]
我希望延长的最后一点有一些问题。有人可以帮我解决。
答案 0 :(得分:4)
是RewriteCond
仅适用于下一个RewriteRule
。你可以有3条规则:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ /$1.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.html -f
RewriteRule ^(.+?)/?$ /$1.html [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.cgi -f
RewriteRule ^(.+?)/?$ /$1.cgi [L]
备选方案:您可以使用以下Options
来避免所有上述规则:
Options +FollowSymLinks +MultiViews