2016-07-23 87 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] 
相关问题