#php #apache #.htaccess #mod-rewrite
#php #apache #.htaccess #переписать мод
Вопрос:
Я пытаюсь сделать простое перенаправление для своего сайта, но мне не удается заставить его работать.
Мой .htaccess:
Options FollowSymLinks
IndexIgnore */*
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(es|fr|pt|de|zh|ru|my|in|ae|bd).my-site.com$
RewriteRule (.*) - [QSA,E=LANGUAGE:%1]
RewriteCond %{ENV:LANGUAGE} ^$
RewriteRule (.*) - [QSA,E=LANGUAGE:en]
RewriteRule (.*) $1?language=%{ENV:LANGUAGE} [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^profile/(.*)$ http://my-site/decorators/profile/$1
RewriteRule ^(.*)$ index.php
Я хочу, чтобы он перенаправлял на http://my-site/decorators/profile/whatever if
пользователь просматривает http://my-site/profile/whatever
Ответ №1:
Ваши правила должны быть такими:
Options FollowSymLinks
IndexIgnore */*
RewriteEngine On
RewriteBase /
RewriteRule ^(profile/.*)$ /my-site/decorators/$1 [NC,L,R=302]
RewriteCond %{HTTP_HOST} ^(es|fr|pt|de|zh|ru|my|in|ae|bd).my-site.com$
RewriteRule (.*) - [QSA,E=LANGUAGE:%1]
RewriteCond %{ENV:LANGUAGE} ^$
RewriteRule (.*) - [QSA,E=LANGUAGE:en]
RewriteRule (.*) $1?language=%{ENV:LANGUAGE} [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
Ответ №2:
Добавьте следующий код htaccess
RewriteCond ^([profile] )/(.*)$
RewriteRule ^([decorators] )/([profile] )/(.*)$
Удалите следующий код в вашем htaccess
RewriteRule ^profile/(.*)$ http://my-site/decorators/profile/$1