【问题标题】:Why can't i have slashes in my rewrite rule?为什么我的重写规则中不能有斜线?
【发布时间】:2014-01-04 04:37:26
【问题描述】:

我正在尝试制作一个 .htaccess 文件,以创建 SEO url。

但是,我似乎在 mod 重写中不能有斜线,我做错了吗?

我的代码如下:

RewriteEngine on
RewriteRule ^(.+)/$ /$1 [L,R=301]
RewriteRule ^folder/folder-name index.php?show=folder&folder_id=7

页面加载正确,但未找到样式表/图像/javascript!

就好像,页面认为它应该寻找相对于“文件夹/文件夹名称”的样式/图像/js。

如果我将最后一行更改为:

RewriteRule ^folder-folder-name index.php?show=folder&folder_id=7

然后一切都正确加载,所以我很确定这是因为斜线。

有什么帮助吗?

【问题讨论】:

    标签: apache .htaccess mod-rewrite seo rewrite


    【解决方案1】:

    另一种选择:您可以使用相对于站点根目录的路径。 即改变:

    <img src="images/some.jpg" />
    

    通过

    <img src="/images/some.jpg" /> 
    

    这里是图片文件夹:yoursite.com/images

    【讨论】:

      【解决方案2】:

      这是因为您在 JS、CSS 等中使用了相对路径。您有 2 个选项来修复它:

      1. 只需在您的 css、js、图像文件中使用绝对路径,而不是相对路径。这意味着您必须确保这些文件的路径以 http:// 或斜杠 / 开头。
      2. 您可以尝试在页面标题中添加此标签:

        <base href="/" />
        

      【讨论】:

      • 太棒了!谢谢,很有魅力:)我会尽快接受:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 2017-03-16
      • 2015-04-23
      • 2012-09-20
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多