【问题标题】:.htacess rewrite url not working for php files, but works for html files.htaccess 重写 url 不适用于 php 文件,但适用于 html 文件
【发布时间】:2020-07-04 07:34:30
【问题描述】:

我正在使用 LAMP 堆栈并且已经配置 apache2 来重写 url。下面是我的 .htaccess 文件

ErrorDocument 404 /404.php
ErrorDocument 403 /403.php

RewriteEngine On
RewriteRule ^contact$ contact.html [NC]
RewriteRule ^page$ page.php [NC]

以上代码将 /contact 重写为 /contact.html 并且工作正常。但是,同样不适用于 /page -> page.php

我错过了什么吗?顺便说一句,我正在使用 DigitalOcean(以防它与它有关:)!)。

【问题讨论】:

  • 你好,尝试访问 URL /page.php 看看它是否给你一些东西。
  • @ankabot 是的 url 是可访问的.. 内容正在显示
  • 不知道,我在我的环境中测试了你的代码并且它有效..
  • @ankabot 它也适用于我的本地系统,也适用于 AWS EC2 实例..
  • 到底发生了什么?你只是得到一个 404 说 /page 不存在吗?你的.htaccess 文件中还有其他指令吗?请尝试以下操作:RewriteRule ^foo$ page.php [L] 并改为请求 /foo - 它现在是否服务于 /page.php

标签: php .htaccess digital-ocean


【解决方案1】:

配置在:

 /etc/httpd/conf/httpd.conf

搜索.htacess 并从以下位置删除#

# AllowOverride

它控制哪些指令可以放在.htaccess 文件中。

【讨论】:

    【解决方案2】:

    也许是国旗!!! 尝试另一个标志:RewriteRule ^(.*)$ bootstrap.php?app=Frontend [QSA,L]。

    【讨论】:

    • 那会做什么? (你的指令的其余部分也与问题完全无关?!)
    猜你喜欢
    • 2019-01-09
    • 1970-01-01
    • 2010-12-20
    • 2016-01-02
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    相关资源
    最近更新 更多