Назад | Перейти на главную страницу

.htaccess URL-адрес перенаправления существующей папки

Программное обеспечение, над которым я работаю, использует уродливые URL-адреса. Чтобы пользователям было проще делиться проектами (это пакет администрирования проекта), я хочу иметь перенаправление. Он должен перенаправить projectadmin.dev/project/1234 на какой-то другой URL. Я могу заставить это работать на ISS, используя их файлы web.config, но Apache доставляет мне головную боль.

В демонстрационных целях я сократил текущий файл .htaccess, но проблема все еще возникает:

RewriteEngine On
RewriteRule ^.*project/([0-9]+)$ RandomOtherPage.php  

Когда я получаю доступ к URL projectadmin.dev/project/123 это дает мне ошибку 403 (Запрещено). Я думаю, это происходит потому, что папка project существует в моем проекте. Когда я меняю файл .htaccess на:

RewriteEngine On
RewriteRule ^.*projects/([0-9]+)$ RandomOtherPage.php 

И перейти к projectadmin.dev/projects/123 он будет работать так, как я задумал.

Мой вопрос: как мне игнорировать тот факт, что папка проекта существует, но файлы в ней все еще доступны (например, projectadmin.dev/projects/image.jpg все равно должно работать) и есть рабочий редирект с цифрами?

Попробуйте отключить MutliViews. В верхней части вашего .htaccess файл:

Options -MultiViews

Если у вас не было .htaccess файл, расположенный в /project подкаталог, который также содержит директивы mod_rewrite, тогда не должно быть проблем, существует папка или нет.