【问题标题】:RewriteRule trouble with optional trailing slash带有可选斜杠的 RewriteRule 问题
【发布时间】:2012-12-08 06:49:05
【问题描述】:

我正在尝试使用以下 RewriteRule 将诸如 http://mysite.com/calendar/ 之类的 URL 定向到特定页面,例如 /calendar.php

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

如果没有斜杠 (http://mysite.com/calendar),这可以正常工作,但如果我包含最后的斜杠(例如 http://mysite.com/calendar/),我的 javascript 和样式表就不会被包含在内。感谢您的帮助。

【问题讨论】:

    标签: mod-rewrite


    【解决方案1】:

    不确定您需要什么。但似乎一个简单的 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
    

    【讨论】:

      【解决方案2】:

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

      不要使用相对网址,而是使用根相对网址。

      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" ...>
      

      【讨论】:

        猜你喜欢
        • 2011-06-12
        • 1970-01-01
        • 2015-09-20
        • 2016-07-14
        • 1970-01-01
        • 2014-09-21
        • 1970-01-01
        • 2012-04-22
        • 1970-01-01
        相关资源
        最近更新 更多