1 回答
TA贡献1784条经验 获得超7个赞
假设您的文件位于站点的文档根目录中,请尝试以下操作:.htaccess
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.html -f
RewriteRule (.+) $1.html [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule (.+) $1.php [L]
TestString中的反向引用(即)是对模式中捕获的组(即)的反向引用。请求的 URL 路径。这与替换中使用的反向引用相同(即 )。$1RewriteCond%{DOCUMENT_ROOT}/$1.phpRewriteRule(.+)RewriteRule$1.php
更多解释...
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
此处检查所请求资源是否存在以及文件扩展名的条件严格正确,具体取决于您的文件结构。它不一定检查您最终将在以下部分中重写的同一文件。请参阅我对此服务器故障问题的回答,以获取对此的详细说明。RewriteRule
上缺少该标志,因此处理将继续通过文件进行,并可能再次重写。LRewriteRule
MultiViews需要禁用(如果尚未禁用)才能成功处理重写。这可能不会影响您目前,但是如果您的重写包含URL参数;他们会失踪。(MultiViews 的效果是,mod_negotation将在处理mod_rewrite指令之前发出内部子请求。file.php
- 1 回答
- 0 关注
- 122 浏览
添加回答
举报