本地主机上的 .htaccess 正常,网络服务器上出现 500 内部服务器错误
Posted
技术标签:
【中文标题】本地主机上的 .htaccess 正常,网络服务器上出现 500 内部服务器错误【英文标题】:.htaccess fine on localhost, 500 internal server error on webserver 【发布时间】:2015-05-21 07:09:42 【问题描述】:在使用 .htaccess 访问 webapp 中的文件夹/时,我正在尝试重定向文件夹/dist 中的显示文件。 这在 localhost (xampp apache) 上可以正常工作,但是当推送到服务器 (AWS Elastic Beanstalk Apache) 时,我收到 错误代码 500 Internal Server Error。
我使用 Yeoman Angular generator 创建了 webapp,它在 Apache 服务器上运行 webapp。该项目位于整个站点的子文件夹中 (http://url.com/pages/webapp)。 Grunt 在 dist 文件夹中创建应用程序,我希望访问者在访问 webapp 的根目录时看到此内容。 基本上我想将http://url.com/pages/webapp/ 重定向/重写为http://url.com/pages/webapp/dist/
我正在尝试使用如下所示的 .htaccess 来完成此操作:
RewriteEngine On
RewriteRule ^$ dist/ [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_URI !^dist/
RewriteRule ^(.*)$ dist/$1
完全相同 htaccess-content 在同一台服务器上的其他项目中使用,它们工作正常。只有使用此生成器创建的项目才有此问题。
问题出在我的 htacces 文件、webapp 的其他部分或 Elastic Beanstalk 中吗?
我尝试将AllowOverride All
(根目录)和LoadModule rewrite_module modules/mod_rewrite.so
添加到/etc/httpd/conf/httpd.conf,但没有成功。
我也没有在error_log中发现任何有趣的东西
我意识到这个问题可能很难通过提供的信息来解决,但我希望其他人也遇到过类似的问题。 谢谢
【问题讨论】:
你的 Apache error.log 中一定有与 500 相关的内容 也许是这个? “由于可能的配置错误,请求超出了 10 个内部重定向的限制。” 【参考方案1】:在 root .htaccess 中试试这个代码:
RewriteEngine On
RewriteRule ^$ dist/ [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_URI !^/dist/ [NC]
RewriteRule ^(.*)$ dist/$1 [L]
注意/
在dist
之前在RewriteCond
之前。
【讨论】:
以上是关于本地主机上的 .htaccess 正常,网络服务器上出现 500 内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章
Dropzone 在本地主机上正常工作,在远程服务器上引发错误