Htaccess mod_rewrite blocking my css

吃可爱长大的小学妹 提交于 2020-03-05 06:58:08

问题


Got htaccess rewriting my links for better seo like this:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}  .*/([^/]+)/?     [NC]
RewriteCond %{REQUEST_URI}  !index\.php      [NC]
RewriteRule  .*      /index.php?cat=%1 [L,NC,QSA]

which rewrites

http://www.example.com/any/number/of/directories/lastDir

to:

http://www.example.com/index.php?cat=lastDir

but my css isnt working, when i upload htaccess to the server, there is just plain text without images and css

tried adding base tag into html, but its not working

<base href="http://www.example.com/">

回答1:


You must exclude the css and images from being rewritten with a RewriteCond

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !\.(?:css|png|jpe?g|gif)$ [NC,OR]
RewriteCond %{REQUEST_URI} !index\.php [NC]
RewriteRule ([^/]+)/?$ /index.php?cat=$1 [QSA,L]



回答2:


try using

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}  .*/([^/]+)/?     [NC]
RewriteCond %{REQUEST_URI} !^(index\.php|robots\.txt|img|font|js|css|scripts) [NC]
RewriteRule  .*      /index.php?cat=%1 [L,NC,QSA]

this will filter out certain file types and directories to make sure that assets are not redirected




回答3:


I was having this problem as well and found a solution.

If your css / js files are linked with a relative path, your RewriteRule will also affect them. Instead of writing a RewriteCond, you can avoid this by using a path from the root directory. In other words:

<link type="text/css" rel="stylesheet" href="css/style.css">

becomes

<link type="text/css" rel="stylesheet" href="/css/style.css">

Where css is a directory in the root directory.



来源:https://stackoverflow.com/questions/15345505/htaccess-mod-rewrite-blocking-my-css

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!