首页 > 解决方案 > 使用 .htaccess 文件删除 PHP 扩展时出现 500 内部服务器错误

问题描述

我正在尝试访问我的网站https://lordmanadventures.com/viewblog/1的博客部分,但我不断收到 500 内部服务器错误。我认为问题出在我的 .htaccess 文件上。奇怪的是,如果我将 url 更改为此 https://lordmanadventures.com/viewblog.php/1,它可以工作。下面是我的.htaccess。

RewriteEngine On

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

RewriteRule ^([a-zA-Z0-9_-]+)$ viewblog.php?blog-id=$1  [L,QSA]

我浏览了各种站点和解决方案,但似乎无法使其正常工作。任何帮助表示赞赏。

标签: php.htaccess

解决方案


好的,我终于让它工作了。规则从上到下的排列方式似乎很重要。我从底部删除了博客的重写规则,然后添加了页面名称。然后将@SJacks 删除扩展名的答案移至底部等瞧!

# Start rewrite rules
RewriteEngine on
RewriteBase /

# Blog
RewriteRule ^viewblog/([a-zA-Z0-9_-]+)$ viewblog.php?blog-id=$1  [L]

# Remove php extension
rewritecond %{SCRIPT_FILENAME}.php -f
rewriterule [^/]$ %{REQUEST_URI}.php [QSA,L]
rewriterule ^(.*)/$ $1 [R=301,L]

谢谢各位帮忙。非常感激。


推荐阅读