htaccess代码导致500错误

时间:2011-05-14 01:20:02

标签: php apache .htaccess

我正在按照书籍教程(Larry Ullman的Effortless Ecommerce)来建立一个电子商务网站。当我将以下代码添加到我的htaccess文件中以重写URL并强制执行SSL时,当我尝试加载我的网站时,它会返回500错误。

有没有人知道问题/解决方案可能是什么?

RewriteEngine on
# For sales:
RewriteRule ^shop/sales/?$ sales.php
# For the primary categories:
RewriteRule ^shop/([A-Za-z\ ] )/?$ shop.php?type=$1
# For specific products:
RewriteRule ^browse/([A-Za-z\ \-] )/([A-Za-z\ \-] )/([0-9] )$ browse.php?type=$1&category=$2&id=$3
# For HTTPS pages:
RewriteCond %{HTTPS} off
RewriteRule ^(checkout\.php|billing\.php|final\.php|admin/(.*))$ https://%{HTTP_HOST}/$1 [R=301,L]



RewriteCond %{HTTPS} off RewriteRule ^(checkout\.php|billing\.php|final\.php|admin/(.*))$ https://%{HTTP_HOST}/$1 [R=301,L]

4 个答案:

答案 0 :(得分:1)

.htaccess中存在一些轻微的语法错误。我修好了,请试试这个:

Options +FollowSymlinks -MultiViews
RewriteEngine on

# For sales:
RewriteRule ^shop/sales/?$ sales.php [L,NC]
# For the primary categories:
RewriteRule ^shop/([^/]*)/?$ shop.php?type=$1 [L,NC]
# For specific products:
RewriteRule ^browse/([^/]*)/([^/]*)/([0-9])/?$ browse.php?type=$1&category=$2&id=$3 [L,NC]
# For HTTPS pages:
RewriteCond %{HTTPS} off
RewriteRule ^(checkout\.php|billing\.php|final\.php|admin/(.*))$ https://%{HTTP_HOST}/$1 [R=301,L,NC]

答案 1 :(得分:0)

您的Apache配置中是否启用了Mod_Rewrite?某些提供商不会在共享主机上激活它。

答案 2 :(得分:0)

我认为问题是@ sparky672在评论中提出的问题,即我是在复制和粘贴,也许是看不见的隐形人物

我现在就开始工作了

<IfModule mod_rewrite.c>
RewriteEngine on
# For sales:
RewriteRule ^shop/sales/?$ sales.php
# For the primary categories:
RewriteRule ^shop/([A-Za-z\+]+)/?$ shop.php?type=$1
# For specific products:
RewriteRule ^browse/([A-Za-z\+\-]+)/([A-Za-z\+\-]+)/([0-9]+)$ browse.php?type=$1&category=$2&id=$3
# For HTTPS pages:
RewriteCond %{HTTPS} off
RewriteRule ^(checkout\.php|billing\.php|final\.php|admin/(.*))$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>

答案 3 :(得分:0)

你在哪里复制&amp;粘贴它?

如果你将它从网页上拉下来,那么你就会引入各种不可见的角色。如果你正在使用MS Word,那么你也会引入无关的隐形。

尝试使用优秀的文本编辑器,检查隐形垃圾并从那里复制/粘贴。或者只需将其全部输入控制面板编辑器即可。

就个人而言,我使用一个好的文本编辑器并通过FTP上传(确保它是ASCII文本模式)。