Это мой код:
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?category=$1 [NC,L]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+) index.php?category=$1&subcategory=$2 [NC,L]
Теперь проблема в том, что он фактически рассматривает каталог и подкаталог как категорию и подкатегорию соответственно. Я пробовал много разных решений, чтобы оставить каталог нетронутым, но, похоже, ни одно из них не работает.
кто-то предлагает мне:
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule .* - [L]
А ТАКЖЕ
RewriteCond %{REQUEST_URI} !^/css
RewriteCond %{REQUEST_URI} !^/js
RewriteCond %{REQUEST_URI} !^/images
RewriteCond %{REQUEST_URI} !^/digitalserp
RewriteCond %{REQUEST_URI} !\.(?:css|js|jpe?g|gif|png)$ [NC]
Ничего не работает до сих пор. Пожалуйста, предложите мне лучший способ сделать чистый URL-адрес, такой как http://www.example.com/category/sub-category, без перезаписи всех CSS, JS и изображений.
Спасибо

Попробуйте использовать END вместо L. Это предотвращает дальнейшее переписывание, потому что Apache зацикливается до тех пор, пока не найдет никаких других подходящих правил или пока цикл не будет прерван при достижении предела. Если вы не можете использовать END, потому что ваш Apache очень старый, добавьте DPI в исходные правила, чтобы путь не переносился в последующие циклы.
RewriteRule ^([A-Z0-9-]+)/?$ index.php?category=$1 [NC,B,QSA,END]
RewriteRule ^([A-Z0-9-]+)/([A-Z0-9-]+)/? index.php?category=$1&subcategory=$2 [NC,B,QSA,END]
@PrashantRajpoot В этом нет никакого смысла; ваше решение заставить rewriterules работать было полностью отключить перезапись?
Да, это временное решение для отключения перезаписи в CSS и связанных папках. Я попробую ваш ответ после того, как снова начну этот проект. Если это сработает, я также дам вам знать. Спасибо за помощь @Walf.
Нет необходимости использовать END в правилах, поскольку шаблон и путь назначения правил различны. L в этой ситуации в порядке.
@starkeen Вы делаете предположения об окружающей среде. Плакаты не всегда предоставляют полное содержимое .htaccess, и если такое простое правило не работает, то обычно это происходит из-за вмешательства другого человека. Кроме того, END - лучший способ сопоставить виртуальный URL-адрес с файлом; L следует использовать только там, где может потребоваться дополнительная перезапись URL.
Спасибо, моя проблема была решена с помощью этого кода:
<IfModule mod_rewrite.c> #Disable rewriting RewriteEngine Off </IfModule>Я поместил этот код в .htaccess и загрузил его в папку css и js. Сейчас работаю, но попробую и вашу идею, чтобы проверить, как лучше. Большое спасибо @Walf