** ОБНОВЛЕННЫЙ ПРИМЕР **
Например, предположим, что URL моего сайта имеет вид "http://www.mydomain.com".
Сайт использует переменные $ _GET для определения страниц, содержимого и т. Д.
Итак, допустим, я нахожусь на http://www.mydomain.com/cms/index.php?p=about-us
. Это будет страница о нас в CMS.
Если я здесь выведу $ _SERVER ['SERVER_NAME'], я получу "http://www.mydomain.com" Если я получаю $ _SEVER ['REQUEST_URI'], я получаю "cms / index.php? P = about-us".
Так, с кодом ниже, "$ lastPage" даетя: "http://www.mydomain.com/cms/index.php?p=about-us", это именно то, что я хочу.
НО, как только я отправляю форму, обновляю содержимое и т. д., меня перенаправляют в файл CSS или путь к изображению.
Это ТОЛЬКО происходит, когда у меня есть правило перезаписи в файле htaccess, которое мне нужно для того, чтобы иметь красиво отформатированные URL.
ОРИГИНАЛЬНЫЙ ВОПРОС
Язапуск веб-сайта в CMS, и в CMS существует переменная «последняя страница», которая создается следующим образом:
$lastPage="";
$lastPage .= $_SERVER["SERVER_NAME"];
$lastPage .= $_SERVER["REQUEST_URI"];
$_SESSION['theLastPage'] = $lastPage;
Переменная используется для перенаправления пользователей на последнюю страницу.они были включены после обновления контента, отправки форм и т. д.
Используется так:
<script>window.location="<?php echo $_SESSION['theLastPage']; ?>"</script>
Это работает именно так, как я хочу ...
ДоЯ добавляю это правило перезаписи в мой файл htaccess:
RewriteRule ^([^/]+)\.html$ index.php?p=$1 [L]
Как только эта строка появляется в моем файле htaccess, переменная перенаправления прерывается и направляет пользователя в файл css или изображение.Правило перезаписи работает должным образом, и оно существует для того, чтобы использовать красиво отформатированные URL-адреса по всему сайту.
Я пытался устранить это в течение последних нескольких дней, но безуспешно.
Если бы кто-нибудь мог пролить немного света на это для меня, это было бы здорово.
Спасибо!
ФАЙЛ HTACCESS **
Я не могу полностью объяснить проблему, потому что я не понимаю, почему это происходит.
Вот мой текущий файл htaccess, здесь есть несколько различных правил переписывания, но первоеодин - тот, который вызывает проблему.
Options -Indexes
Options -MultiViews +FollowSymLinks
RewriteCond %{HTTP_HOST} !^www.yoursafetyexperts.com$
RewriteRule ^(.*)$ http://www.yoursafetyexperts.com/$1 [R=301]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/cms/
RewriteRule ^(.+) - [PT,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)\.html$ index.php?p=$1 [L] // If I remove this rule, my redirect works properly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/.]+)/([^/.]+)\.php$ index.php?p=$1&post_id=$2&post=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/.]+)/([^/.]+)/$ index.php?p=$1&catId=$2&catName=$3 [L]
</IfModule>