【问题标题】:cant load page without .php extension无法加载没有 .php 扩展名的页面
【发布时间】:2018-09-18 13:04:06
【问题描述】:

当有带有 URL 的 .php 扩展名时,页面加载没有任何问题,但是在尝试访问没有 的同一页面时会出现错误 Not Found .php 扩展名。

.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

有扩展名


无扩展

在发布之前我已经搜索了很多。

  1. mod_rewrite for removing .php extension is producing 404 error
  2. Using .htaccess for remove .php extension but folder access returns 404
  3. getting 404 error when removing file extension worked on wamp but not working on lamp
  4. Removing URL .php extension gives 404 error

感谢您的帮助。

【问题讨论】:

  • 尝试添加RewriteCond %{REQUEST_FILENAME} !-d
  • 不得不问,你用的是Apache吗?
  • 是的,apache2 ubuntu 16.04
  • 当然。第二个屏幕截图甚至这么说:-) 错过了。你启用了 mod_rewrite 吗?并且你安装后重启了apache服务器?
  • ypz,mod_rewrite 已经启用

标签: php url-rewriting


【解决方案1】:

只需将以下内容放入您的 .htaccess 文件中(并确保启用了 mod_rewrite):

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^.]+)$ $1.php [NC,L]

【讨论】:

    【解决方案2】:

    尝试检查您的虚拟主机是否应启用 AllowOverride。

    类似这样的:

    <Directory /your/path/here>
        AllowOverride All
    </Directory>
    

    https://httpd.apache.org/docs/2.4/en/mod/core.html#allowoverride

    【讨论】:

    • 这不是一个坏建议,但它仍然是在黑暗中刺,因为我们不知道 OP 是否已经有了这个。提个醒:像这样的建议(我们不太了解)和问题应该写成 cmets,而不是答案。
    最近更新 更多