2016-07-23 78 views
0

在我的網站中,我使用.htaccess規則從網址中刪除了.php擴展名。這樣我就可以進入沒有.php擴展名的任何頁面。例如:爲什麼.htaccess顯示我「內部服務器錯誤」?

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

現在,我有一個PHP頁面中的鏈接來更新表單數據。 Link是波紋管:

<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] 
+0

你在wordpress/laravel/codeigniter或任何其他此類服務? – hjpotter92

+0

我正在使用核心的PHP。 –

回答

0

嘗試:

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] 

,並張貼詳細的日誌文件???

+0

我正在嘗試。 –

+0

啊..它將我重定向到不同的網址。例如:我需要去http:// localhost/aponit/dev/zones。它將我重定向到http:// localhost/zones /並且根據我的問題無法工作。 –

0

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

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

該代碼塊告訴服務器,任何以「update」開頭的URI都將被重寫。但在你的情況下,URI總是以「aponit/dev /」開頭。所以這段代碼不會在任何時候工作。

解決方案

建立一個虛擬主機。您將在網上獲得大量可用的教程如何根據您的服務器軟件(XAMPP/WAMP等)設置虛擬主機

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

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