微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.htaccess 重写为 uri,其中文件名存在但省略了扩展名

如何解决.htaccess 重写为 uri,其中文件名存在但省略了扩展名

我的 .htaccess 遇到了一个奇怪的问题,无法将其传递给 index.PHP。根据我当前的重写规则,如果我转到 mysite.com/abc123,它会正确重定向到 index.PHP,将 /abc123 传递给要处理的 index.PHP查询字符串。

但是,如果我访问 mysite.com/test,我会看到一个 apache Not Found 错误页面。我希望它转到 index.PHP 并将测试作为查询字符串传递。

如果我访问 mysite.com/test.PHP,它会按预期加载该文件

我的文件结构如下:

/
|- index.PHP
|- test.PHP
|- .htaccess

这是我当前的 .htaccess 文件

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.PHP$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} /([a-z\-A-Z]+)
RewriteRule .* index.PHP?/$0 [L,QSA]

</IfModule>

# END wordpress

<FilesMatch "\.(html|css|js|gif|jpg|jpeg|png|ico|swf)$">
    Header set Cache-Control "max-age=259200,proxy-revalidate"
</FilesMatch>  

解决方法

MultiViews 中删除 Options

或者,如果您找不到 Options 指令所在的位置,您可以添加以下内容:

Options -MultiViews

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。