Mod_Rewrite: преобразовать обычный / url в / #! / Url - PullRequest
1 голос
/ 08 января 2012

У меня есть два следующих URL-адреса…

  1. http://url.com/one
  2. http://url.com/category/some

Если эти URL-адреса называются, я хочу, чтобы mod_rewrite вызывал ...

  1. http://url.com/#!/one
  2. http://url.com/#!/category/some

Как я могу это сделать?

1 Ответ

2 голосов
/ 08 января 2012

Как-то так?

# not existing file (images, css, etc)
RewriteCond %{REQUEST_FILENAME} !-f
# no query parameters
RewriteCond %{QUERY_STRING} =""
# not /
RewriteCond %{REQUEST_URI} !^/$
# external redirect and pass along query string and uri as fragment
# i guess this must be an external redirect as the server side should
# not see the fragment, R=redirect, NE=dont escape #, L=last rule
RewriteRule ^(.*)$ /#!/$1 [R,NE,L]

# same but with query parameter
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^(.*)$ /?%{QUERY_STRING}#!/$1 [R,NE,L]  

Но я не уверен, что это хорошая идея.Возможно, вам следует выполнить перенаправление в логике приложения или с помощью сценария на стороне клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...