код htaccess, вызывающий ошибку 500 - PullRequest
1 голос
/ 14 мая 2011

Я следую учебному пособию (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 ]

1 голос
/ 14 мая 2011

В вашем .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]
0 голосов
/ 14 мая 2011

Куда вы копируете и вставляете его?

Если вы вытаскиваете его с веб-страницы, то вы вводите все виды невидимых символов. Если вы используете MS Word, вы также вводите посторонние невидимые.

Попробуйте использовать хороший текстовый редактор, проверьте наличие невидимого мусора и скопируйте / вставьте оттуда. Или просто напечатайте все это в редакторе панели управления.

Лично я использую хороший текстовый редактор и загружаю через FTP (убедившись, что он находится в текстовом режиме ASCII).

0 голосов
/ 14 мая 2011

Я думаю, что проблема заключалась в том, что @ 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>
0 голосов
/ 14 мая 2011

Включен ли Mod_Rewrite в вашей конфигурации Apache? Некоторые провайдеры не активируют его на общих хостах.

...