переписать URL для глубоких ссылок - PullRequest
2 голосов
/ 25 октября 2011

То, что я пытаюсь сделать, довольно просто, но ни один из ответов на stackoverflow точно не решает эту проблему:

Как использовать .htaccess для вставки хеш-тега между базовым URL-адресом и запрошенным маршрутом?

е

http://mydomain.com/shop  

станет

http://mydomain.com/#/shop

Я хочу использовать .htaccess, потому что я чувствую, что это более чистое решение, чем PHP на стороне сервера. по этой причине я могу сделать это потому, что я использую адрес jquery, который перехватывает ссылки на странице, заменяя атрибут href. он просто ломается, если хеш-тег не вставляется должным образом.

Ответы [ 3 ]

2 голосов
/ 25 октября 2011

Просто используйте стандартный болотный mod_rewrite с опцией "no-escape" (NE):

RewriteRule ^shop /\#/shop [R=301,L,NE]
1 голос
/ 25 октября 2011

Символ хеш / числа (#) сам по себе имеет особое значение в URL , поэтому вы не можете надежно поместить его в путь вашего URL.Вы можете сделать это:

RewriteRule ^shop(.*) /hash/shop$1 [R=301,L]
0 голосов
/ 19 ноября 2016

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

//Validate browser
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Safari') == !FALSE) {
?>
<script>
    window.location = 'deeplinkexample://';
    setTimeout(function() {
        window.location = 'https://itunes.apple.com/us/app/apple/id1145838819?l=fr&ls=1&mt=8'
    }, 250);enter code here
</script>
<?php
}
...