Назад | Перейти на главную страницу

htaccess - перенаправления с глубиной более 1 уровня не работают

Просто перешел на общий хостинг на GoDaddy, и я пытаюсь заставить мои правила .htaccess работать.

Вот что у меня есть:

ErrorDocument 404 /error.php
Options FollowSymLinks

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.mydomain\.org$
RewriteRule ^(.*)$ http://mydomain.org/$1 [R=301,L]

RewriteRule ^view/(\w+)$ viewitem.php?itemid=$1 [R=301,L]
RewriteRule ^category/(\w+)$ viewcategory.php?tag=$1 [R=301,L]

RewriteRule ^faq$ faq.php
RewriteRule ^about$ about.php
RewriteRule ^contact$ contact.php
RewriteRule ^submit$ submit.php
RewriteRule ^contactmsg$ handler-contact.php

Кажется, что все страницы в корне домена работают, то есть mydomain.org/faq, mydomain.org/about работают.

Но всякий раз, когда я пробую mydomain.org/category/somecategory, я получаю 404. Как я могу исправить мой .htaccess, чтобы он подчинялся этим правилам, которые более чем на 1 уровень?

Спасибо,

РЕДАКТИРОВАТЬ: Я исправил правила, изменив их на следующее:

RewriteRule ^view/(.*)$ viewitem.php?itemid=$1
RewriteRule ^category/(.*)$ viewcategory.php?tag=$1

Может ли кто-нибудь подтвердить / опровергнуть, что это правильный способ исправить это?

Вы делаете это по-новому (с (.*)) правильно.