簡體   English   中英

為什么.htaccess向我顯示“內部服務器錯誤”?

[英]why .htaccess is showing me “Internal Server Error”?

在我的網站上,我使用.htaccess規則從網址中刪除了.php擴展名。 這樣我可以轉到沒有.php擴展名的任何頁面。 例如:

http://localhost/aponit/dev/zones (there are no .php extension)

現在,我在php頁面中有一個鏈接來更新表單數據。 鏈接如下:

<a class="btn btn-success btn-xs" href="<?php echo SITE_URL."update/$zone_id"?>" >Edit</a>

此鏈接顯示以下網址:

http://localhost/aponit/dev/update/54

但不幸的是,它向我顯示錯誤消息:

內部服務器錯誤

我正在使用以下.htaccess規則:

ErrorDocument 404 /not-found.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
RewriteRule ^update/([0-9]+) update?z=$1 [L]

嘗試去:

ErrorDocument 404 /not-found.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

並發布詳細日志文件???

如果站點不在根域下運行,則yuo提供的.htaccess代碼將無法正常運行。 例如

RewriteRule ^update/([0-9]+) update?z=$1 [L]

此代碼塊告訴服務器,任何以數字開頭的以“ update”開頭的URI都將被重寫。 但是在您的情況下,URI始終以“ aponit / dev /”開頭。 因此此代碼將無法正常工作。

設置虛擬主機。 您將在線獲得許多可用的教程,該教程如何基於服務器軟件(XAMPP / WAMP等)來設置虛擬主機。

如果您只想從網址中刪除.php,請在.htaccess中使用以下代碼:

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

暫無
暫無

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

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