Перенос htaccess из Apache в LiteSpeed

мои правила htaccess хорошо работают в Apache, но мне пришлось перейти на LiteSpeed, и моя страница не работает должным образом (например, если я набрал URL как http://domain.com/article/some-article или же http://domain.com/article/tags/some-tag). Может, кто-нибудь справился с подобной проблемой? В логах сервера я получаю: Максимальное количество перенаправлений достигнуто.

Мой htaccess:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# browser requests PHP
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]

# check to see if the request is for a PHP file:
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /$1.php [L]

RewriteCond %{REQUEST_URI}  .article.php/tags/([^/]+)$     [NC]
RewriteRule  ^(.*)$      article.php?tag=%1 [L,NC,QSA]

RewriteCond %{REQUEST_URI}  .article.php/([^/]+)$     [NC]
RewriteRule  ^(.*)$      article.php?art=%1 [L,NC,QSA]

RewriteCond %{REQUEST_URI}  .article.php/(.+)$     [NC]
RewriteRule  ^(.*)$      http://domain.com/article/$1 [L,R=301]

Буду благодарен за вашу помощь

1

Решение

Я покажу вам, как я справился с проблемой — мне пришлось изменить правила и порядок — я думаю, что было некоторое перенаправление цикла:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

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


RewriteCond %{REQUEST_URI}  .articles/tags/([^/]+)$     [NC]
RewriteRule  ^(.*)$      articles.php?tag=%1 [L,NC,QSA]

RewriteCond %{REQUEST_URI}  .articles/([^/]+)$     [NC]
RewriteRule  ^(.*)$      articles.php?article=%1 [L,NC,QSA]

RewriteCond %{REQUEST_URI}  .articles.php/tags/([^/]+)$     [NC]
RewriteRule  ^(.*)$      articles/tags/%1 [L,R=301]

RewriteCond %{REQUEST_URI}  .articles.php/([^/]+)$     [NC]
RewriteRule  ^(.*)$      articles/%1 [L,R=301]


RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# browser requests PHP
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]

# check to see if the request is for a PHP file:
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /$1.php [L]

#301 redirect error page (instead of 302 - for SEOD reason)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /page-not-found [L,R=301]

</IfModule>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]