2015-10-02 2 views
2

Я искал всюду, чтобы найти правильное решение/метод, но я не могу найти ничего, что работает для меня. Я даже спросил друзей, и они помогли, но никто не победил.Изменить URL-адрес в браузере без перенаправления с помощью htaccess

Что я пытаюсь сделать, это изменить URL-адрес, отображаемый в браузере, но только это. (Нет повторной загрузки, перезагрузка страницы). Я хочу сделать это, чтобы сделать мой UCP чистым, смотря при просмотре определенных страниц/файлов.

Что я пытаюсь достичь? Вот пример на профиле, URL будет:

mysite.com/ucp/profile.php?player=Heartfire 

Однако, я хочу, чтобы это выглядело как

mysite.com/ucp/profile/heartfire 

Или что-то еще! Я просто хочу избавиться от параметров ПОСЛЕ .PHP

Я пробовал различные примеры, найденные с Google и этим сайтом, но ни один из них не работает, может кто-нибудь, пожалуйста, направить меня на пути к достижению результата.

что я пробовал? Вот несколько примеров того, что я пытался раньше:

RewriteRule ^profile/([0-9]+)/?$ /ucp/profile.php?player=$1 
RewriteRule profile.php?player=$1 profile.php [NC,L] 
RewriteRule ^profile$ profile.php?player=$1 

Так что я делаю неправильно, что это не работает?

ответ

1

Вставьте следующий .htaccess файл в корневой директории сайта:

RewriteEngine On 

RewriteCond %{THE_REQUEST} ^GET\ /ucp/profile\.php?([^=]+)=(\S+) [NC] 
RewriteRule ^ucp/profile\.php$ /ucp/%1/%2? [R=301,L,NC] 

# Now, deal with internal rewrites (which will not cause redirection): 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^ucp/([^/]+)/([^/]+)/?$ /ucp/profile.php?$1=$2 [NC,L] 
+0

Это сделал трюк (пришлось немного изменить его, чтобы убедиться, что он не заставит вас вернуться на главную страницу). Однако, похоже, что это не загрузка CSS UCP. – Heartfire

+1

@Heartfire Используйте '' элемент в файле 'profile.php'. – hjpotter92

+0

Это сделало трюк! Цените всю помощь, я стану использовать эти недавно приобретенные знания. – Heartfire

0

Вы можете использовать внутренние переадресации, что не изменит ваш URL, а отобразит ваш запрос в соответствии с вашими пожеланиями.

То, что вы хотите, невозможно, потому что:

Htaccess и перезапись на стороне сервера. Запрос, поступивший на сервер, необходимо переписать на сервере, и вам нужно изменить его в строке url клиентов.

Для этого сервер должен отправить перенаправление с URL-адресом, что вы ожидали. Это означает, что перенаправление является обязательным. Сервер не может переписывать URL-адреса клиентов, просто может отправить ответ перенаправления.

Внутренний перенаправление может имитировать вас, что-то вроде запроса было тем, что вы ожидали, но оно прозрачно для клиентов.

Btw, постоянная переадресация - это правильное решение здесь, чтобы уведомить пользователя и дать возможность сообщить им об изменении ресурса и обновлении закладки/api/whatever.

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

  • Нет связанных вопросов^_^