правило перезаписи 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 и т. Д.) Делают не загружается

Author: Daryl T, 2015-04-25

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] 
 2
Author: starkeen, 2015-04-25 14:12:01

Добавьте [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/">;
 1
Author: Gunaseelan, 2015-04-25 14:32:22