У меня был небольшой код, который перенаправлял страницы, доступные из моего собственного домена, на их хэш-адреса, например:
example.com/stationary.html => example.com/#/stationary
Это был код:
<IfModule mod_rewrite.c>
# Redirect requests to ajax pages the their hashes
RewriteCond $1 !=index [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com/ [NC]
RewriteRule ^([a-zA-Z0-9\-_]+)\.html?$ /#$1 [NE,R]
</IfModule>
Это будет отлично работать, теперь мне интересно, могу ли я заставить его перенаправлять такие страницы, как
example.com/stationary => example.com/#!/stationary
Взлом приведенного выше кода не помог. Любая помощь будет оценена по достоинству!
Спасибо!
Я не уверен, что вы думаете о «хеш-адресе»; URL-адрес с хеш-меткой в нем относится к привязке на рассматриваемой странице, и сам по себе не является ресурсом.
Обратитесь к RFC 2616 за подробностями.
Независимо от вашего вопроса: вам придется повторить все Правило, включая все RewriteConds, чтобы соответствовать чему-то еще.
RewriteCond $1 ! \.html?$ [NC]
...
RewriteRule ^([a-zA-Z0-9_-]+)$ /#!/$1 [NE,R]
Также переместите "-"до конца коллекции, чтобы вам не пришлось от нее убегать.
Да, и избавьтесь от IfModule; ты бы знать загружено оно или нет.