为什么.htaccess会告诉我"内部服务器错误"?

时间:2016-07-23 12:03:31

标签: php apache .htaccess mod-rewrite

在我的网站中,我使用 #define SIZEOFREAL 8 #define SIZEOFINT 4 #define SIZEOFLONGINT 8 #define TREAL REAL(SIZEOFREAL) #define TINTEGER INTEGER(SIZEOFINT) #define TCOMPLEX COMPLEX(SIZEOFREAL) #define TLONGINTEGER INTEGER(SIZEOFLONGINT) #define M_REAL(x) FLOAT(x) #define C_PI_R 3.14159265358979323846 #define C_01_R 0.1 #define C_0125_R 0.125 #define C_025_R 0.25 #define C_05_R 0.5 规则从网址中删除了.php个扩展名。这样我就可以转到没有.php扩展名的任何页面。例如:

.htaccess

现在,我在php页面中有一个链接来更新表单数据。链接如下:

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

此链接显示以下网址:

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

但不幸的是,它向我显示了错误消息:

内部服务器错误

我正在使用以下.htaccess规则:

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

2 个答案:

答案 0 :(得分: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]

并发布详细日志文件???

答案 1 :(得分:0)

如果站点未在根域下运行,则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]