2014-03-07 3 views
0

Каждый пользователь может посетить свой профиль учетной записи на www.example.com/profile/{username}перенаправлять пользователей из старых URL к новым

Примечание: имя пользователя содержит цифры и буквы только

Например: WWW .example.com/профиль/michaelwatson www.example.com/profile/jenniferlee2

хотел перенаправлять от старого URL: www.example.com/profile/jenniferlee2

к новому с horter URL www.example.com/jenniferlee2

Я хочу, чтобы все, у кого есть старые закладки, перешли от старого URL-адреса к новому URL-адресу и кому-либо другому, но только для URL-адресов профиля. Все остальное должно оставаться неизменным.

Это то, что я пытался добавить в файл .htaccess, но получить внутреннюю ошибку сервера

RewriteRule/профиль/$ 1 [L]

+0

И как вы узнаете, что профиль - это не профиль с новым URL-адресом от OLD? Например, если я получаю доступ к http: // www.example.com/contact' и обрабатывается index.php, я буду перенаправлен на '/ profile/contact' с учетом вашего текущего правила. – Prix

ответ

0

Вы можете использовать этот код в корневой .htaccess (*.):

RewriteEngine On 

RewriteCond %{THE_REQUEST} \s/+profile/(\w+) [NC] 
RewriteRule^/%1? [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/profile/ 
RewriteRule ^(\w+)$ /profile/$1 [L] 
+0

Пробовал ваше предложение, и он ломает другие ссылки (добавляет/профайл к другим ссылкам). Если я нажму на http://www.example.com/account/lostpass, он говорит, что запрашиваемый URL/профиль/учетная запись/потерянный пароль не найден на этом сервере. – Charles

+0

У вас не было никакого механизма, когда поставить '/ profile' и когда нет? Вы можете уточнить? – anubhava

+0

Не могли бы вы объяснить, к какому механизму вы обращаетесь, чтобы я мог предоставить правильную информацию? – Charles

Смежные вопросы