让htaccess重写我的链接以获得更好的搜索结果:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} .*/([^/]+)/? [NC]
RewriteCond %{REQUEST_URI} !index\.php [NC]
RewriteRule .* /index.php?cat=%1 [L,NC,QSA]
重写
http://www.example.com/any/number/of/directories/lastDir
为:
http://www.example.com/index.php?cat=lastDir
但是我的css不起作用,当我将htaccess上传到服务器时,只有纯文本没有图像和css
尝试将基本标记添加到html中,但它无法正常工作
<base href="http://www.example.com/">
答案 0 :(得分:2)
您必须排除使用RewriteCond重写css和图像
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]
答案 1 :(得分:1)
尝试使用
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]
这将过滤掉某些文件类型和目录,以确保资产不被重定向
答案 2 :(得分:1)
我也遇到了这个问题并找到了解决方案。
如果您的css / js文件与相对路径链接,您的RewriteRule也会影响它们。您可以通过使用根目录中的路径来避免这种情况,而不是编写RewriteCond。换句话说:
<link type="text/css" rel="stylesheet" href="css/style.css">
变为
<link type="text/css" rel="stylesheet" href="/css/style.css">
其中css
是根目录中的目录。