2011-06-24 36 views
0

我想我已经阅读了数百万篇文章以及所有人的代码,但我无法完成它的工作!我尝试的每个代码都有效,但它显示的是重定向url而不是虚拟的。Htaccess重写虚拟目录打破所有链接

我想mysite.com/company/client/实际显示来自mysite.com/company/client.php的结果,但除非我建立绝对链接,否则client.php中的文件会被破坏。

例如mysite.com/company/css/style.css从http://mysite/company/client/观看时被打破,但要真正的文件mysite.com/company/client.php

我希望有人时,工作正常知道如何解决这个问题,而不必改变client.php中的所有链接为绝对!

谢谢!

斯科特

+1

请提供您的.htaccess文件的一些代码。向我们展示链接正在打开的实际页面上的一些代码。 –

回答

1

你可能要考虑的HTML基础标签:

... 
<head> 
... 
<base href="http://mysite/company" /> 
... 
</head> 
... 

你把这个在client.php文件,那么任何相对链接&引用会自动“转换”成绝对一,从正确的文件夹开始。


请参阅有关BASE标记可能出现的问题的评论。 另一种方法是通过向RewriteRule添加“[R]”来执行重定向而不是重写。但是,您的用户将在URL中看到“client.php”。

+0

强烈建议不要使用''标签,如果其他选项可用,由于它引入的警告。例如,''标签将打破所有指向锚点的超链接('')。由于他的行为是由于重写规则而导致的,因此可以通过.htaccess文件解决它。 **编辑**:这个问题实际上有一些关于''标签问题的好信息:http://stackoverflow.com/questions/1889076/is-it-recommended-to-use-the-base-html-tag –

+0

基地的确看起来不错!它似乎修复了一切!非常感谢您的答复。是的,我希望可以有一个解决方案可以在100%的时间内运行,现在我将使用base。 – scott

+0

啊你是对的;它仍然是打破这样的事情...... :( – scott