301 редирект index.php? P = - PullRequest
       7

301 редирект index.php? P =

0 голосов
/ 28 мая 2018

У меня перенаправленный веб-сайт с «www.example.com» на «example.com».Использование записи в файле .htacccess:

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

При входе на сайт: www.example.com перенаправление работает: http://example.com

Однако при входе на подстраницу: www.example.com / page1.html, страница загружается правильно, но адрес: http://example/index.php?P=page1.html.

Это связано с записью в файле .htaccess, которая находится в начале:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !^(.*)/n_(.*)+ [NC]
RewriteRule ^(.*)?$ index.php?p=$1 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.*)/n_(.*)+ [NC]
RewriteRule ^n_(.*)[_+?]?$ index.php?p=news&nid=$1 [QSA,L]

Как бороться с перенаправлением 301 для удаления 'index.php?P = '

1 Ответ

0 голосов
/ 28 мая 2018

Я нашел скрипт:

RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

Для страницы: http://example.com/index.php возвращает http://example.com/ и работает нормально.

Существует проблема с подстраницами:

Когда он пишет http://www.example.com/page.html, он получает: http://example.com/?p=page.html

...