Только что переехал на общий хостинг 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 уровня?
Спасибо,
EDIT: Я исправил правила, изменив их следующим образом:
RewriteRule ^view/(.*)$ viewitem.php?itemid=$1
RewriteRule ^category/(.*)$ viewcategory.php?tag=$1
Может ли кто-нибудь подтвердить/опровергнуть, что этоправильныйкак это исправить?
решение1
Новый способ, которым вы это делаете (с помощью (.*)
), правильный.