.htaccess rewrite charge les fichiers du mauvais répertoire

J’utilise RewriteRule pour créer des URL favorables au référencement. Après avoir créé la règle, il recherche les fichiers externes dans les répertoires incorrects.

Code de fichier .htaccess:

 # 1 -- Error 404 -- ErrorDocument 404 /NotFound.php #2 -- IGNORE INDEX -- IndexIgnore * #3 -- Default charter set -- AddDefaultCharset UTF-8 RewriteEngine On RewriteRule ^questions/([0-9]+) questions.php?id=$1 [NC,L] 

Normalement, il charge les CSS depuis css/filename.css . Après avoir appliqué la règle de réécriture, il charge les fichiers depuis questions/filename.css

Comment puis-je créer un RewriteRule qui modifie simplement le comportement des URL et comment forcer questions.php?id=34&title=something aux questions/34/something automatiquement?

Pour css problem, utilisez simplement le chemin absolu dans vos fichiers CSS, js et images plutôt qu’un fichier relatif. Ce qui signifie que vous devez vous assurer que le chemin de ces fichiers démarre avec http:// ou une barre oblique / .

Sinon, vous pouvez append cette section juste en dessous de la section du code HTML de votre page: pour que chaque URL relative soit résolue à partir de cette URL de base et non de son URL.

Pour le 2ème problème, vous avez besoin de règles de redirection pour redirect les anciennes URL vers de jolis liens.

Avoir comme ça:

 # 1 -- Error 404 -- ErrorDocument 404 /NotFound.php #2 -- IGNORE INDEX -- IndexIgnore * #3 -- Default charter set -- AddDefaultCharset UTF-8 Options -MultiViews RewriteEngine On # external redirect from actual URL to pretty one RewriteCond %{THE_REQUEST} /questions\.php\?id=([^\s&]+)&title=([^\s&]+)\s [NC] RewriteRule ^ /questions/%1/%2? [R=302,L,NE] RewriteCond %{THE_REQUEST} /questions\.php\?id=([^\s&]+)\s [NC] RewriteRule ^ /questions/%1? [R=302,L,NE] # internal forward from pretty URL to actual one RewriteRule ^questions/([0-9]+)/?$ questions.php?id=$1 [NC,L,QSA] RewriteRule ^questions/([0-9]+)/([\w-]+)/? questions.php?id=$1&title=$2 [NC,L,QSA]