0

在我编辑了我的 .htaccess 之后。无法再访问 css 文件。怎样才能摆脱这个问题。

如果我禁用我的重写规则,是的,那么它工作正常,但是当我在 url 栏中键入 file.php?id=5&title=hello 时,它不会将我重定向到 file.php?id/title,所以我必须手动输入,当我这样做时,css被删除

.htaccess 代码:

RewriteEngine On
RewriteRule ^([0-9]+)/([a-zA-Z0-9_-]+)$ file.php?id=$1&title=$2
RewriteRule ^([0-9]+)/([a-zA-Z0-9_-]+)/$ file.php?id=$1&title=$2

我也试过这个:

 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^([0-9]+)/([a-zA-Z0-9_-]+)$ file.php?id=$1&title=$2
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^([0-9]+)/([a-zA-Z0-9_-]+)/$ file.php?id=$1&title=$2

我也试过这个:

 RewriteEngine On
 RewriteCond $1 !^(jpg|jpeg|gif|ico|png|media|txt|xml|css|js)
 RewriteRule ^([0-9]+)/([a-zA-Z0-9_-]+)$ file.php?id=$1&title=$2
 RewriteRule ^([0-9]+)/([a-zA-Z0-9_-]+)/$ file.php?id=$1&title=$2

我想隐藏我的 URL,以提高对 SQL 注入的安全性。

更新

这是一个工作版本:

网址:http://localhost/21760

.htaccess 文件:

        RewriteEngine On
        RewriteCond %{REQUEST_URI} !-f
        RewriteCond %{REQUEST_URI} !-d
        RewriteRule ^([0-9]+)$ file.php?id=$1&
        RewriteCond %{REQUEST_URI} !-f
        RewriteCond %{REQUEST_URI} !-d
        RewriteRule ^([0-9]+)/$ file.php?id=$1

我使用了它,它就像一个魅力,没有反斜杠。

  RewriteEngine On
  RewriteRule ^([a-zA-Z0-9_-]+)-watch-file-([0-9]+).html file.php?title=$1&id=$2
4

3 回答 3

4

您可以为您的规则设置条件,因此这些条件将不适用于存在的文件

RewriteCond %{REQUEST_FILENAME} !-f

您还可以为目录添加一个

RewriteCond %{REQUEST_FILENAME} !-d

然后你的文件可能看起来像

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/([a-zA-Z0-9_-]+)$ file.php?id=$1&title=$2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/([a-zA-Z0-9_-]+)/$ file.php?id=$1&title=$2
于 2013-01-23T11:37:52.617 回答
1

发布的建议是防止现有文件被 mod_rewrite 重写的正确方法。如果您能够:检查您的 apache 访问和/或错误日志,以查看当您直接在浏览器中调用 CSS URI 时究竟发生了什么,并让我们知道结果如何。

第二个想法:是您无法访问 CSS URI 的问题吗?还是您的 CSS 在调用网页时似乎不起作用的问题?如果是后者,那么您在调用 CSS 文件时也可能会遇到相对 URI 与绝对 URI 的问题,您可以尝试在“RewriteEngine On”行下方添加以下内容:

RewriteBase /

于 2013-01-23T12:06:33.950 回答
0
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/([a-zA-Z0-9_-]+)$ file.php?id=$1&title=$2
RewriteRule ^([0-9]+)/([a-zA-Z0-9_-]+)/$ file.php?id=$1&title=$2
于 2013-01-23T11:39:45.390 回答