'hash' url переписать в .htaccess

Я хочу переписать http://example.com/articles.html#first-article с помощью http://example.com/articles/first-article

Можно ли переписать?

Я попытался использовать следующий, но не работал у меня:

RewriteRule ^articles/(.+)$ /articles\.html\#$1

Ответы

Ответ 1

Нет, это невозможно. Фрагмент URL (все от # on) даже не отправляется на сервер.

Возможно, вы хотите рассмотреть решение на основе JavaScript, где фактический контент будет загружен через AJAX в зависимости от фрагмента. Здесь вы найдете полезную информацию об этом методе: Что такое shebang/hashbang (#!) В Facebook и новые URL-адреса Twitter для?

Ответ 2

В URL-адрес подстановки можно добавить # флаг NE. Проверьте:

Итак, вы можете попробовать следующее:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}  !articles\.html      [NC]
RewriteCond %{REQUEST_URI}  ^/articles/([^/]+)/? [NC]
RewriteRule .*       /articles.html#%1           [R,NE,L]

Перенаправление

http://example.com/articles/parameter

Для

http://example.com/articles.html#parameter

Строка articles считается фиксированной, а parameter считается переменной.