簡體   English   中英

使用 .htaccess 文件刪除 PHP 擴展時出現 500 內部服務器錯誤

[英]Getting 500 Internal Server Error when using .htaccess file to remove PHP extension

我試圖訪問我網站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]

我瀏覽了各種站點和解決方案,但似乎無法使其正常工作。 任何幫助表示贊賞。

好的,我終於讓它工作了。 規則從上到下的排列方式似乎很重要。 我從底部刪除了博客的重寫規則,然后添加了頁面名稱。 然后將@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]

謝謝各位幫忙。 非常感激。

以下是正確刪除 PHP 擴展的方法。 在此特定頁面重寫之后可以進行。 我沒有包含任何內容,因為這應該可以解決您的問題。 讓我知道你是怎么辦的。

# Start rewrite rules
RewriteEngine on
RewriteBase /

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM