【发布时间】:2018-10-23 18:35:15
【问题描述】:
所以我试图让我的网站删除所有文件扩展名,而不是 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。
感谢任何帮助/建议。
谢谢你:)
【问题讨论】:
-
我不确定这需要标签php
-
您的意思是说multimap.xyz/mail 显示在此服务器上未找到请求的 URL /mail/.php。 ?
-
您可以添加
RewriteCond %{REQUEST_FILENAME}.php -f以仅将其重写为例如存在的文件。或者做一些更易于维护的事情:只需使用引导文件作为FallbackResource,并使用您选择的语言中的逻辑。 -
请注意,2 RewriteConds 不适用于第二个 RewriteRule,如果您希望它们适用,请再次添加。
-
是的,转到 url /email/ 会显示发布的错误,因为它看起来像是在尝试查找 /email/.php 而不是 /email/index.php