【发布时间】:2022-01-02 12:54:24
【问题描述】:
我试图从链接中隐藏.php 文件的扩展名
例如www.example.com/about.php
显示www.example.com/about
我做了什么
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
而且效果很好。
但我有另一个链接 example.com/news.php?id=45
根据上面的规则,我可以访问链接像
example.com/news?id=45 without .php
但我想隐藏id=45我想要这样example.com/news/45
我做了什么RewriteRule ^news.php?id=([0-9]+) /news/$1 [NC,L]
但它不起作用我收到 500 内部服务器错误
【问题讨论】:
-
500 Internal Server Error 是一条通用错误消息,通知您服务器在处理请求时崩溃。除此之外,它(故意)毫无意义,并且对调试几乎没有用处。您需要检查服务器上的错误日志以尝试查找底层异常消息。一旦你明白了,你就有机会发现问题。
-
嗨@ADyson 错误因为代码
RewriteRule ^news.php?id=([0-9]+) /news/$1 [NC,L]当我删除它时一切正常,并且错误日志中没有任何内容 -
您查看了哪个错误日志?阿帕奇? php?由于 htaccess 是 Apache 的一部分,如果您正确配置了日志记录,则 Apache 日志中应该有信息。
标签: php apache .htaccess mod-rewrite