.htaccess 重写断开的链接

.htaccess 重写断开的链接,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,我为我的博客创建了一个URL重写,但所有链接(如css、href和javascript)都因此中断 如果不通过在每个链接之前添加/来手动继续重命名所有链接,那么在.htaccess文件中是否会以某种方式重写它?以下是我所拥有的: RewriteRule ^blog/([-a-zA-Z0-9]+)/?$ blog.php?title=$1 [L,NC] 使用mod_rewrite,您可以检查URL是否指向文件: RewriteCond %{REQUEST_FILENAME} -f 或文件夹:

我为我的博客创建了一个URL重写,但所有链接(如css、href和javascript)都因此中断

如果不通过在每个链接之前添加/来手动继续重命名所有链接,那么在.htaccess文件中是否会以某种方式重写它?以下是我所拥有的:

RewriteRule ^blog/([-a-zA-Z0-9]+)/?$ blog.php?title=$1 [L,NC]

使用
mod_rewrite
,您可以检查URL是否指向文件:

RewriteCond %{REQUEST_FILENAME} -f
或文件夹:

RewriteCond %{REQUEST_FILENAME} -d
以下是您可以使用的
.htaccess

# if this url doesn't point on a file...
RewriteCond %{REQUEST_FILENAME} !-f
# ...and doesn't point on a folder...
RewriteCond %{REQUEST_FILENAME} !-d
# ...then check this rule
RewriteRule ^blog/([-a-zA-Z0-9]+)/?$ blog.php?title=$1 [L,NC]

使用
mod_rewrite
,您可以检查URL是否指向文件:

RewriteCond %{REQUEST_FILENAME} -f
或文件夹:

RewriteCond %{REQUEST_FILENAME} -d
以下是您可以使用的
.htaccess

# if this url doesn't point on a file...
RewriteCond %{REQUEST_FILENAME} !-f
# ...and doesn't point on a folder...
RewriteCond %{REQUEST_FILENAME} !-d
# ...then check this rule
RewriteRule ^blog/([-a-zA-Z0-9]+)/?$ blog.php?title=$1 [L,NC]

通过在URL中添加额外的
/
,浏览器不知道相对URL的基础是什么,因此它会在页面内容中的每个相对URL链接前面添加
/blog/
。浏览器不知道它实际上是从
/blog.php
中获取内容的,它位于文档根目录中,而不是(至少在浏览器看来)一个名为“blog”的文件夹中

您可以将基本URI添加到页面的标题,而不是更改所有链接:

<base href="/" />

请注意,在某些情况下(我认为使用旧的IE浏览器),您需要完整的URL:

<base href="http://your-site.com/" />

通过在URL中添加额外的
/
,浏览器不知道相对URL的基础是什么,因此它将
/blog/
附加到页面内容中每个相对URL链接的前面。浏览器不知道它实际上是从
/blog.php
中获取内容的,它位于文档根目录中,而不是(至少在浏览器看来)一个名为“blog”的文件夹中

您可以将基本URI添加到页面的标题,而不是更改所有链接:

<base href="/" />

请注意,在某些情况下(我认为使用旧的IE浏览器),您需要完整的URL:

<base href="http://your-site.com/" />


Wow!你每天都在学习新东西。多年来一直在研究html,但从未意识到有基础!今天帮我解答了两个问题,谢谢,伙计,继续问下去。:)哇!你每天都在学习新东西。多年来一直在研究html,但从未意识到有基础!今天帮我解答了两个问题,谢谢,伙计,继续问下去。:)