为什么.htaccess显示我“内部服务器错误”?
在我的网站中,我使用.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]
尝试:
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]
,并张贴详细的日志文件???
我正在尝试。 –
啊..它将我重定向到不同的网址。例如:我需要去http:// localhost/aponit/dev/zones。它将我重定向到http:// localhost/zones /并且根据我的问题无法工作。 –
如果站点没有在根域下运行,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]
你在wordpress/laravel/codeigniter或任何其他此类服务? – hjpotter92
我正在使用核心的PHP。 –