因此,我试图让我的网站删除所有文件扩展名,以代替https://multimap.xyz/error/id.php?= ...而是https://multimap.xyz/error/id?= ...。同样,我应该能够做https://multimap.xyz/mail/index.php,它将尾随的index.php删除,只得到https://multimap.xyz/mail/。
我正在尝试使用.php和.html文件扩展名和索引以及使用.htaccess来实现这一点,到目前为止,这是我所要做的
php_flag display_errors off
ErrorDocument 404 https://multimap.xyz/error/id?=404
Options +MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^([^\.]+)$ $1.html [NC,L]
这非常适合删除文件扩展名。所以... / error / id?= ...完美地工作。但是,当尝试访问https://multimap.xyz/mail/时,会显示一条错误页面,提示
在此服务器上找不到请求的URL /email/.php。
感谢任何帮助/建议。
谢谢:)
答案 0 :(得分:0)
在重写之前,您应该检查.html
和.php
文件的存在。
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index|(\S+?))\.(?:php|html)[/\s?] [NC]
RewriteRule ^ /%1%2 [R=301,L,NE]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+?)/?$ $1.html [L]