我为我的博客创建了一个URL重写,但所有链接,如css,href&由于这个原因,javascript被破坏了。
如果不通过在每个链接之前添加/来手动继续重命名所有链接,无论如何都会以某种方式在.htaccess文件中重写它吗?这就是我所拥有的:
RewriteRule ^blog/([-a-zA-Z0-9]+)/?$ blog.php?title=$1 [L,NC]
答案 0 :(得分:1)
通过在您的网址中添加额外的/
,浏览器不知道相对网址是什么,因此它会在每个相对网址前面附加/blog/
您在网页内容中的链接。浏览器不知道它实际上是从/blog.php
获取内容,该内容位于文档根目录中,而不是(至少在浏览器中)显示为“博客”的文件夹。
您可以在页面标题中添加基本URI,而不是更改所有链接:
<base href="/" />
请注意,在某些情况下(我认为使用旧的IE浏览器),您需要完整的网址:
<base href="http://your-site.com/" />
答案 1 :(得分:0)
使用mod_rewrite
,您可以检查您的网址是否指向文件:
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]