0

让 htaccess 重写我的链接以获得更好的 seo,如下所示:

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/">
4

3 回答 3

2

您必须将 css 和图像排除在使用 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]
于 2013-03-11T21:15:36.557 回答
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]

这将过滤掉某些文件类型和目录,以确保资产不会被重定向

于 2013-03-11T20:29:15.563 回答
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根目录中的目录在哪里。

于 2015-11-25T13:54:13.680 回答