Это мой код в.htaccess
RewriteEngine On
RewriteRule ^explore/([0-9a-zA-Z\ ]+)/([0-9a-zA-Z]+)/([0-9a-zA-Z]+) renderpage.php?menu=$1&submenu=$2&subsubmenu=$3 [NC]
и когда я печатаю www.mysite.com/explore/Servizi%20ADR/Mediazione/Regolamento (извините итальянский)
"explore/Servizi%20ADR/Mediazione/Regolamento/jquery.js "
Поэтому я предполагаю, что мне нужно написать что-то вроде RewriteCond, но я не знаю, что именно
Вы должны использовать условия, чтобы не включать реальные файлы или директории. А также используйте базовый путь для таких файлов
RewriteEngine On
#if requested URI is real file or dir, do nothing
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
#else process the rule
RewriteRule ^explore/([0-9a-zA-Z\ ]+)/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/? renderpage.php?menu=$1&submenu=$2&subsubmenu=$3 [NC,L]
Также вы можете поместить базовый тег в раздел head вашего html, вместо того, чтобы использовать абсолютные пути для js и css.
<base href="http://www.yoursite.com" />
/js/jquery.js
или/imgs/image.png
. Проблема заключается в том, что браузер не знает, что/explore/whatever/
не является папкой, и нет хорошего способа сказать это. Если вы не хотите этот эффект, то вам не следует переписывать URL-адреса.