У меня есть файл .htaccess, который работает на локальном сервере MAMP. Однако, когда я загружаю его на главный сервер, он не может найти страницу новостей.
RewriteEngine On RewriteBase / RewriteCond %{THE_REQUEST} \s/+news\.php\?news_id=([^\s&]+) [NC] RewriteRule ^ /news/%1? [R=301,L] RewriteCond %{THE_REQUEST} \s/+Category\.php\?pageNum_RS_Search=([^\s&]+)&totalRows_RS_Search=([^\s&]+)&Category=([^\s&]+) [NC] RewriteRule ^ /Compare/%1/%2/%3? [R=301,L] RewriteCond %{THE_REQUEST} \s/+Category\.php\?Category=([^\s&]+) [NC] RewriteRule ^ /Compare/%1? [R=301,L] RewriteCond %{THE_REQUEST} \s/+product\.php\?id=([^\s&]+) [NC] RewriteRule ^ %1? [R=301,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)?$ product.php?id=$1 [L,QSA] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^Compare/([^/]+)/?$ Category.php?Category=$1 [L,QSA] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^Compare/([^/]+)/([^/]+)/([^/]+)/?$ Category.php?pageNum_RS_Search=$1&totalRows_RS_Search=$2&Category=$3 [L,QSA] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^news/([^/]+)/?$ news.php?news_id=$1 [L,QSA]
Переадресация категории и продукта отлично работает на главном сервере, однако в новостях нет ошибки 404
другие правила перезаписи на один уровень выше
rewriteengine on rewritecond %{HTTP_HOST} ^www.mysite1.co.uk$ [OR] rewritecond %{HTTP_HOST} ^mysite1.co.uk$ rewriterule ^(.*)$ "http\:\/\/mysite\.co\.uk\/$1" [R=301,L] #5311a623b538f rewritecond %{HTTP_HOST} ^www.mysite.co.uk$ [OR] rewritecond %{HTTP_HOST} ^mysite.co.uk$ rewriterule ^Pianoshop\/detailed_page\.php(.*)$ "http\:\/\/mysite\.co\.uk\/product\.php$1" [R=301,L] #5310700a7e477 rewritecond %{HTTP_HOST} ^www.mysite.co.uk$ [OR] rewritecond %{HTTP_HOST} ^mysite.co.uk$ rewriterule ^Pianoshop\/index_blog\.php(.*)$ "http\:\/\/mysite\.co\.uk\/news\.php$1" [R=301,L] #531
Я подозреваю, что это происходит из-за того, что на вашем реальном сервере включен параметр MultiViews
который конфликтует с `mod_rewrite.
Добавьте эту строку поверх своего .htaccess, чтобы отключить ее:
Options -MultiViews
В большинстве случаев проблема с конфигурацией apache проверяет вашу конфигурацию apache
Проверьте это для получения дополнительной информации