У меня есть простое веб-приложение, и я настроил его на использование .htaccess для правил перезаписи.
Options +followSymlinks
RewriteEngine on
Rewriterule ^records/view/([0-9]+)$ ./record_view.php?id=$1 [NC]
Он работает, но страница не видит внешний файл CSS. Вместо того, чтобы искать ./style.css, он ищет записи / view / style.css.
<link rel="StyleSheet" href="style.css" type="text/css" />
Он работает, если я использую полный путь к нему: href="/myapp/style.css"
.
Приложение было написано до того, как были добавлены правила перезаписи, поэтому все ссылки в приложении тоже разрываются. href="index.php"
должен стать href="/myapp/index.php"
.
Нужно ли мне возвращаться и исправлять все ссылки, чтобы использовать правила перезаписи, или есть конфигурация, которую я могу изменить? (Ubuntu Server 11, Apache2, PHP5)
Спасибо.
Как насчет того, чтобы перехватить все запросы на ресурсы и переписать их так, как они должны быть?
# Existing config:
RewriteEngine on
RewriteRule ^records/view/([0-9]+)$ ./record_view.php?id=$1 [NC]
# Add:
RewriteRule ^records/view/(.*)$ ./$1 [NC]
Это исправляет ресурсы, но не помогает со ссылками - это должны быть перенаправления.
Вы, конечно, можете обойти это с помощью дополнительных правил, но я бы рекомендовал исправить ссылки. Очистка HTML-кода для работы со структурой вашего приложения имеет больше смысла, чем взломать его в конфигурации Apache.