RewriteRule в .htacces не работает должным образом - PullRequest
0 голосов
/ 30 октября 2019

В моем файле .htaccess у меня есть несколько перенаправлений 301.

Следующая строка отлично работает:

RewriteRule ^sub1/ https://example.com/sub1  [L,R=301]

Однако, если есть другой / in url, страница не будетбудет перенаправлен правильно.

RewriteRule ^sub1/sub2/ https://www.example.com/sub  [L,R=301]

Это закончится на example.com/sub1/sub2/, хотя он загружает страницу example.com/sub1, так как ничего не делает с /sub2.

Как заставить принудительно переписать URL?

РЕДАКТИРОВАТЬ У меня также есть несколько строк для удаления .php в .htaccess, которые могут вызывать это:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
...