Использование «/ profile» в псевдониме URL

8

Путь «/ profile» существует как физическая папка в корне установки Drupal, что означает, что добавление URL-псевдонима для части содержимого в «/ profile» не будет работать - в результате возникает ошибка 403.

К счастью, для конкретного проекта у меня есть SEO партнер, который говорит мне, что использование этого конкретного пути является абсолютной, категорической необходимостью; отсутствие этого было бы доказательством того, что предсказание Мая о конце света действительно точное, мы все умрем медленно и т. д. и т. д.

Так что я собираюсь пойти дальше и бросить этот немного нелепый вопрос в массы, чтобы узнать, нашел ли кто-нибудь творческий способ решить эту проблему раньше ...

Как я могу использовать «/ profile» (и «/ profile / *» и т. Д.) В качестве псевдонимов URL, сохраняя при этом полностью функциональный, обновляемый экземпляр Drupal?

Важно отметить, что мы используем модуль Global Redirect с включенными опциями «De-slash» и «Non-clean to clean» (и они должны оставаться такими).

Клайв
источник
Никогда не делал этого, следовательно, комментарий, а не ответ, но так как в / profile нет ничего, что обычно просматривается, я думаю, что вам лучше всего добавить RewriteRule, чтобы изменить запрошенный URL-адрес на другой базовый путь. Это поможет вам справиться с проблемой / profile. Затем вам, вероятно, потребуется затем изменить входящий файл, чтобы переназначить его обратно в / profile.
mpdonadio
4
Это, вероятно, глупый вопрос, но мы не можем просто поместить этот «RewriteRule ^ profile /(.*) /index.php?q=profiles/$1» в верхнюю часть файла htaccess, чтобы переписать все запросы к / profile для индексации .php? q = profile /% или это может вызвать проблемы с обновлениями / безопасностью
James
@MPD Звучит многообещающе, я попробовал, но ничего не смог заставить работать
Клайв
1
Как был установлен ваш сайт? это из профиля по умолчанию или использует какой-то дистрибутив, у которого есть свой установочный профиль и модули в каталоге профилей?
Марек Сотак
1
@ Джеймс это работает для меня :) попробуйте добавить ответ и выиграть +500!
Калабро

Ответы:

11

1) .htaccess (до строки 100):

RewriteRule ^profiles($|/(.*)) /index.php [L]

2) VirtualHost (для настройки де-слэша):

<Location /profiles>
     DirectorySlash Off
</Location>

Вторая часть нужна только если вы используете Global Redirect "de-slash".

kalabro
источник
Удивительно, DirectorySlash Offдиректива, кажется, добилась цели. Спасибо :)
Клайв
1
Brilliant. Хорошо заслуживает награды.
mpdonadio