.htaccess. Как сделать редирект с https://mydomain.com/index.php/catalog/knifes на https://mydomain.com/catalog/knifes
Как сделать редирект с https://mydomain.com/index.php/catalog/knifes на https://mydomain.com/catalog/knifes и другими похожими случаями, когда index.php идёт вначале, а затем идут другие сегменты маршрута?
RewriteEngine On
Redirect 301 /instagram/IGTV /instagram/igtv
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
# С www на без www
RewriteCond %{HTTP_HOST} ^www.mydomain\.su$ [NC]
RewriteRule ^(.*)$ https://mydomain.su/$1 [R=301,L]
# Без слэша
#RewriteRule ^(.*)/$ /$1 [L,R=301]
# с index.html/php на главную
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/
RewriteRule ^(.*)index\.(php|html|htm)$ https://mydomain.su/$1 [R=301,L]
# Убрать ? после /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /\?\d*\ HTTP/
RewriteRule ^ https://mydomain.su/? [R=301,L]
RewriteCond %{THE_REQUEST} ^[^\s]+\s+[^?]*?\?
RewriteCond %{QUERY_STRING} ^$
#RewriteRule .? %{REQUEST_URI}? [R=301,L]
RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI}? [R=301,L]
Ответы (5 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Можно попробовать так:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Автор решения: Pr0gramm1st
→ Ссылка
А что если...
RewriteBase /
RewriteRule ^(.*)index\.php$ $1 [R=301,L]
Автор решения: XManit
→ Ссылка
Если вы реализовывали url адреса(или может пути, я не знаю как это назвать "catalog/knifes") через express в nodejs, то стоит просто добавить следующее:
app.get("/", function(request, response) {
response.render("index");
});
Автор решения: Aleksey Vaganov
→ Ссылка
Если нужно захватить все что после index.php то рул будет таким:
RewriteRule ^/index\.php(.*)$ $1 [R=301,L]
Автор решения: Andrew Hobbit
→ Ссылка
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]