bub*_*ubi 2 .htaccess mod-rewrite url-rewriting
我想删除应用程序中的多个扩展。
例如,在名为directory
i的目录中,我有这些文件
我想访问这些没有扩展名的文件,例如
我找到了这段代码,它适用于删除单个扩展名。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.cgi [NC,L]
Run Code Online (Sandbox Code Playgroud)
当我尝试使用此代码添加更多扩展时,只有第一个可以工作。我将上述扩展为
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.cgi [NC,L]
RewriteRule ^([^\.]+)$ $1.html [NC,L]
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Run Code Online (Sandbox Code Playgroud)
我希望扩展的最后一点有一些问题。有人可以帮我解决。
YesRewriteCond
仅适用于下一个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]
Run Code Online (Sandbox Code Playgroud)
替代方案:您可以通过以下方式避免上述所有规则Options
:
Options +FollowSymLinks +MultiViews
Run Code Online (Sandbox Code Playgroud)