Я пишу CMS, которая использует JavaScript для загрузки содержимого страницы из базы данных. Но мне не нужны хеши # в моих URL.

Когда запрашивается путь /cms/post/123, Apache должен загрузить файл /cms/index.html. Но если по пути уже есть файл, например /cms/image.png, Apache должен вернуть файл. Другой момент: когда, например, запрашивается /cms/admin или /cms/admin/post/123, должен быть возвращен файл /cms/admin.html. Каталог CMS может быть другим.

0
Luis 18 Сен 2013 в 23:32
Спасибо за подробные требования, что именно вы пробовали?
 – 
anubhava
18 Сен 2013 в 23:34

1 ответ

Лучший ответ

Вы можете попробовать использовать эти правила в файле htaccess в вашем каталоге /cms/

Options -Multiviews
RewriteEngine On

# if file exists, serve the file
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]

# if request is for admin, load admin.html
RewriteRule ^admin/ admin.html [L]

# everything else gets routed to index.html
RewriteRule ^ index.html [L]

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

1
Jon Lin 18 Сен 2013 в 23:42
Отлично смотрится, завтра попробую. Спасибо за быстрый ответ!
 – 
Luis
19 Сен 2013 в 00:03