noob&x27;s mod rewrite和相对URL的问题
我一定是做错了什么,因为无论我如何尝试或用谷歌搜索,我都找不到答案:( 所以,我想要一个像 要实际加载这样一个完美工作的url: 我可以在.htaccess文件中编写重写规则,并且可以读取lid变量。问题是list.php中的所有路径都是相对的.Css、images、javascript e.t.c。因此,当SEO友好url加载时,所有这些项目都会在BLUEPRINT/list/857/…中查看 例如:noob&x27;s mod rewrite和相对URL的问题,url,mod-rewrite,seo,Url,Mod Rewrite,Seo,我一定是做错了什么,因为无论我如何尝试或用谷歌搜索,我都找不到答案:( 所以,我想要一个像 要实际加载这样一个完美工作的url: 我可以在.htaccess文件中编写重写规则,并且可以读取lid变量。问题是list.php中的所有路径都是相对的.Css、images、javascript e.t.c。因此,当SEO友好url加载时,所有这些项目都会在BLUEPRINT/list/857/…中查看 例如:在请求seo友好url时实际上是这样的: 那我该怎么办 我可能会尝试将页面中的所有路径转换为根
在请求seo友好url时实际上是这样的:
那我该怎么办
我可能会尝试将页面中的所有路径转换为根相对路径(例如“/BLUEPRINT/images/logo.png”)而不是相对路径。但是页面中有几十个路径,即使我这样做,它们也不会在实际服务器上工作,因为应该是“/images”而不是“/BLUEPRINT/images”.所以我不能把我的文件上传到实际的服务器上
我有什么选择?所有这些精彩的脚本,比如wordpress、joomla、e.t.c.是如何处理这个问题的?我到底做错了什么?这让我发疯了!你试过应用“重写库”规则吗
您可以编写一个条件,允许对CSS、JS和其他路径的请求通过并忽略list.php的重写规则。下面是一个示例
# Turn on URL rewriting
RewriteEngine On
# If your URL is www.example.com/, use /
RewriteBase /
# Find CSS and JS paths
RewriteCond $1 ^(BLUEPRINT/css|BLUEPRINT/js)
# No rewriting
RewriteRule ^(.*)$ - [PT,L]
以下是Apache提供的一个很棒的教程,其中包含大量示例:
祝你好运
编辑:Apache的另一个好链接是mod_rewrite docs。对“passthrough”进行文本搜索
需要注意的重写规则的另一部分是破折号“-”,它表示“不应执行替换”
最后,我在示例中添加了RewriteEngine和RewriteBase规则。这将使其更加完整。您的新URL没有相同的基本路径前缀。这意味着相对URL路径的解析方式不同。引用
images/logo.png
现在解析为/BLUEPRINT/list/images/logo.png
,而不是to/BLUEPRINT/images/logo.png
要解决此问题,请在引用中使用绝对URL路径,如:
<img src="/BLUEPRINT/images/logo.png" />
现在,相对URL路径是从此基URL而不是当前URL解析的。但请注意,更改基URL会影响所有相对URL。我正在尝试
RewriteBase/BLUEPRINT/
或RewriteBase/BLUEPRINT
,但似乎没有任何效果?我知道我已使用RewriteBase解决了类似的问题。我将尝试找出并返回给你。基本标签(不知道)对我来说这似乎是一个很好的解决方案!我会尝试一下并让你知道。谢谢。很抱歉花了这么长时间尝试,但这正是我想要的!非常感谢。base
标记有问题。@DaveJarvis:IE8在base
@Gumbo方面有一些问题:理论上,这个错误是固定的;实际上,公众有很多错误的浏览器。
<base href="/BLUEPRINT/" />