правило перезаписи htaccess работает только частично
У меня есть базовый файл перезаписи htaccess, однако я не могу заставить одно из правил работать, когда оно похоже на предыдущее правило.
Мой код;
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^gallery$ gallery.php
RewriteRule ^about-us/page-1$ page-1.php
RewriteRule ^about-us/page-2$ page-2.php
RewriteRule ^about-us$ about-us.php
Галерея, страница-1 и о нас все работают, однако страница-2 не работает.
Есть ли способ заставить это работать?
Я пробовал другой порядок, и если сначала ставится "о нас", ни страница 1, ни страница 2 не работают
Примечание: Перенаправление перенаправляет на страницу 2, Однако включенные файлы (css, js и т. Д.) Делают не загружается
2 answers
Попробуйте это:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /about-us/page-2$
RewriteRule .* page-2.php [NC,L]
RewriteRule ^gallery$ gallery.php [NC,L]
RewriteRule ^about-us/page-1$ page-1.php [NC,L]
RewriteRule ^about-us$ about-us.php [NC,L]
Добавьте [L,NC,QSA]
для следующих 2 строк
RewriteRule ^about-us/page-1$ page-1.php
RewriteRule ^about-us/page-2$ page-2.php
Таким образом, измененные .htacces будут выглядеть следующим образом
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^gallery$ gallery.php
RewriteRule ^about-us/page-1$ page-1.php [L,NC,QSA]
RewriteRule ^about-us/page-2$ page-2.php [L,NC,QSA]
RewriteRule ^about-us$ about-us.php
Как сказал Старкин в комментарии, чтобы css и js-файл работали с переписанным URL -адресом, добавьте приведенный ниже код в заголовок вашего документа.
<base href="yoursitename.com/">;