【问题标题】:Mod-Rewrite - Using usual path to css/js/imagesMod-Rewrite - 使用 css/js/images 的常用路径
【发布时间】:2013-10-10 19:48:08
【问题描述】:

我有一些代码可以将www.domain.com/state/statename/folder/index.php?name=name 转换为statename.name.domain.com。这些是我的代码:

RewriteEngine On

RewriteCond %{REQUEST_URI} !\.(jpe?g|gif|bmp|png|tiff|css|js)$ [NC]

RewriteCond %{HTTP_HOST} ^([^.]+)\.([^.]+)\.(domain\.com)$ [NC] 
RewriteRule !^state/ /state/%1/folder/index.php?name=%2&page=%{REQUEST_URI} [L,NC]

现在的问题是我必须使用完整的 url 来链接我的 css、js 和图像文件。 此外,我的代码中的一个插件 (AjaxLoader) 无法使用完整的 url 在 div 中加载页面。 (path/filepath.ext) 等相对路径不起作用。

那么,有没有办法使用通常的路径(path/filepath.ext)

非常感谢。非常感谢您的帮助。

【问题讨论】:

    标签: php .htaccess mod-rewrite subdomain wildcard


    【解决方案1】:

    你能试试这个规则吗:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !\.(jpe?g|gif|bmp|png|tiff|css|js)$ [NC]
    RewriteCond %{HTTP_HOST} ^([^.]+)\.([^.]+)\.(domain\.com)$ [NC] 
    RewriteRule !^state/ /state/%1/folder/index.php?name=%2&page=%{REQUEST_URI} [L,NC]
    

    如果这不起作用,请尝试base tag,例如:

    <BASE href="http://statename.name.domain.com/">
    

    【讨论】:

    • 很高兴再次在这里见到你。第一个与上面的代码相同。它仍然需要使用http链接。第二种解决方案(BASE)适用于 css、图像和 js,但不适用于 AjaxLoader URL。在 Firefox 开发者工具中,它将请求显示为 OPTIONS 而不是 GET。响应是肯定的(200 OK)
    • 因此,如果 BASE 标签适用于 css、js、图像,那么您的大部分问题都解决了。你只需要为AjaxLoader提供完整路径
    • 你能告诉我AjaxLoader请求的完整URL吗?
    • 作为 Ajaxloader 需要在同一文件夹中请求的文件。所以我只放了`file.php'。当我输入完整的 url 时,它返回 GET (200 OK) 但它没有显示任何内容。
    • 当你说同一个文件夹时,这是否意味着 statename.name.domain.com 的 DOCUMENT_ROOT ?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    相关资源
    最近更新 更多