Я не могу получить доступ к моей css & amp; JS файлы, когда я использую переписать URL

Перед использованием переписать URL каждый это правильно отображается

без использования переписать URL

но когда я использовал переписать URL

http://localhost/mgosoft/admin/userreg/

при использовании переписать URL

пожалуйста, помогите мне с этим, спасибо 🙂

0

Решение

Поскольку вы используете PHP просто используйте $site_addr = $_SERVER['HTTP_HOST'];
и добавьте это, прежде чем все ваши ссылки, как->

<link rel="stylesheet" type="text/css" href="<?php echo $site_addr; ?>css/style.css">

Надеюсь, это поможет

1

Другие решения

@ O-mkar прибил это в значительной степени. Еще одна вещь, которую вы можете сделать — если вы не хотите изменять все ссылки в рамках всего вашего проекта: переписать их на правильный URL-адрес автоматически, используя другую строку htaccess (для /css/ каталог) ::

RewriteCond %{REQUEST_URI} !^/css/ [NC]
RewriteRule ^.*/css/([^/]+)$ /css/$1 [L, R=301]

Это перепишет любой неправильный URL, как http://localhost/mode/movies/view/profile/css/style.css

к фиксированному пути ресурса http://localhost/css/style.css

ОФК. localhost должен соответствовать правильному внешнему имени хоста.

в зависимости от того, насколько универсален ваш исходный процесс переписывания, вы должны исключить повторное переписывание путей к ресурсам, иначе вы получите бесконечный цикл перезаписи:

RewriteCond %{REQUEST_URI} !^/css/ [NC]
RewriteCond %{REQUEST_URI} !^/images/ [NC]
RewriteCond %{REQUEST_URI} !^/javascript/ [NC]

так далее…


На ваш пример и файл ресурсов assets/css/themes/simple/style.css

Вам в основном нужно сказать: Перепишите все, что ENDS с этой строкой, в корневую папку.
Таким образом, это будет:

RewriteCond %{REQUEST_URI} !^/assets/css/themes/simple/ [NC] #skip, if already rewritten
RewriteRule ^.*/assets/css/themes/simple/([^/]+)$ /assets/css/themes/simple/$1 [L, R=301]

Вы можете использовать эту красивую страницу, чтобы поиграть: http://htaccess.madewithlove.be/

положить в приведенном выше примере и URL-адрес запроса http://localhost/mode/movies/assets/css/themes/simple/style.css чтобы увидеть, это станет http://localhost/assets/css/themes/simple/style.css

ОФК. Вы можете играть в Arround и перенаправить КАЖДЫЙ подфайл из /assets/ тогда вам не нужно создавать правила для каждого файла.

пс .: Если вы используете [L, R=301] для перенаправления ресурсов также будет работать кеш браузера, потому что он запомнит постоянное перемещение запрошенного файла. — без R = 301 все время будут думать, что это разные файлы.

1

Вы также можете попробовать это
Для вашей локальной версии добавьте

<base href="//localhost/mywebsite" />

в головной раздел

и для ваших живых версий измените его на

<base href="//your.domain.here" />

ссылка на http://www.w3.org/TR/html4/struct/links.html#h-12.4

0
По вопросам рекламы [email protected]