使用可选的尾部斜杠重写规则问题

时间:2012-12-08 06:49:05

标签: mod-rewrite

我正在尝试使用以下RewriteRule将http://mysite.com/calendar/等网址定向到特定网页,例如/calendar.php

RewriteRule ^calendar/?$ /calendar.php [NC,L]

这没有尾部斜杠(http://mysite.com/calendar),但是如果我包含最后的斜杠(例如。http://mysite.com/calendar/),我的javascript和样式表就不会被包括在内。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

不确定你需要什么。但它似乎是一个简单的preg_replace会做你。例如:

$url = "http://mysite.com/calendar/";

preg_replace('/calendar/', '/news/', $url);

//$url now =  http://mysite.com/news/
//OR
$url = "http://mysite.com/calendar/calendar.php";

preg_replace('/calendar/', '/news/', $url);

//$url now = http://mysite.com/news/news.php

答案 1 :(得分:0)

浏览器在(虚拟)/calandar文件夹中查找资产。

使用root-relative urls。而不是使用相对URL。

e.g.
<link href="main.css" ...>
would become 
<link href="/main.css" ...>
and 
<script src="folder/file.js" ...>
would become
<script src="/folder/file.js" ...>