У меня есть правило mod_rewrite, которое меняет example.com/en/about/topic
на example.com/en/view.php?p=pages/about/topic.php
Мое правило:
RewriteRule ^ en / ([a-zA-Z0-9 /] +) $ en / view.php? p = pages / $ 1.php
view.php содержит все мои постоянные вещи, такие как меню, логотип и т. д., и использует php include для получения страниц / темы.php
Он работает на example.com/en/topic -> example.com/en/view.php?p=pages/topic.php
, но когда я пытаюсь example.com/en/about/topic -> example.com/en/view.php?p=pages/about/topic.php
, он находит view.php
и pages/about/topic.php
и загружает их, но пытается загрузить все мои css-файлы, изображения и т. д. из en/about/...
вместо en/...
Это делается для изображений как в view.php, так и topic.php.Самое разочаровывающее то, что если я добавлю [R] к правилу, все будет работать нормально, но это противоречит цели упражнения SEO!
Я был на этом весь день, но не повезло.Хотя я обнаружил ведение журнала mod_rewrite и пару удобных направляющих .
Вот что говорит мой журнал для example.com/en/test (который работает):
[perdir C: / tt / xampp / htdocs /] переписать 'en / test' -> 'en / view.php? P = pages / test.php'
[perdir C: / tt / xampp / htdocs /] strip префикс document_root: C: /tt/xampp/htdocs/en/view.php -> /en/view.php
[perdir C: / tt /Внутренний редирект xampp / htdocs /] с /en/view.php [ВНУТРЕННЕЕ НАПРАВЛЕНИЕ]
[perdir C: / tt / xampp / htdocs /] проходит через C: / tt / xampp / htdocs / en / view.php
[perdir C: / tt / xampp / htdocs /] проходит через C: /tt/xampp/htdocs/en/base/code/view.css
инапример example.com/en/about/test (чего нет)
[perdir C: / tt / xampp / htdocs /] переписать 'en / about / dir / test' -> 'ru/view.php?p=pages/about/dir/test.php'
[perdir C: / tt / xampp / htdocs /] strip префикс document_root: C: / tt / xampp / htdocs / en /view.php -> /en/view.php
[perdir C: / tt / xampp / htdocs /] внутреннее перенаправление с /en/view.php [ВНУТРЕННЕЕ НАПРАВЛЕНИЕ]
[perdir C: / tt / xampp / htdocs /] проходит через C: / tt / xampp / htdocs / en / view.php
[perdir C: / tt / xampp / htdocs /] проходит через C: / tt / xampp / htdocs / en / about
Любая помощь будет принята с благодарностью!