Используйте символические ссылки для удаления .php extension -> raw .php file обслуживается - PullRequest
3 голосов
/ 19 января 2011

Я создал символическую ссылку (с помощью ln -s index.php test) на мой index.php, чтобы попытаться получить «более симпатичный» URL без расширения .php. Однако, когда я получаю доступ к https://myservername.com/test, я получаю необработанный php-файл вместо интерпретируемого содержимого.

Я бы не хотел включать mod_rewrite, если это возможно, поскольку это будет только для этого одного файла (я использую платформу CodeIgniter, которая выполняет преобразование URL для остальных файлов).

Есть ли способ для apache прочитать реальный файл назначения вместо символической ссылки, чтобы определить, что это скрипт php? Есть ли лучший способ сделать это?

Ответы [ 2 ]

3 голосов
/ 19 января 2011

Бьюсь об заклад, проблема в том, что Apache вызывает интерпретатор PHP только для файлов с расширением .php, и поскольку ваши символические ссылки не имеют расширения, независимо от того, не интерпретируются ли они.

Попробуйте вместо этого использовать mod_rewrite или попробуйте поиграться с директивами Apache, такими как FollowSymLinks - хотя и не уверен, применимо ли это здесь. Вы не хотите включать парсер PHP для всех файлов, это точно.

2 голосов
/ 19 января 2011

Если вы не хотите использовать mod_rewrite (я думаю, что он является легитимным, в прошлом возникала проблема безопасности mode_reqrite, если вам это не нужно, зачем его использовать?)

Alias /index /var/ww/mydocumentroot/index.php

Псевдоним предоставляется mod_alias, который вы должны иметь. Удалить символическую ссылку .

...