代码之家  ›  专栏  ›  技术社区  ›  hsirkar

mod_将参数重写为目录并维护相对URL

  •  0
  • hsirkar  · 技术社区  · 6 年前

    我有以下PHP文件:

    http://example.com/details.php?item=asdf
    

    但是,我希望URL更简洁:

    http://example.com/item/asdf/details
    

    我试着用 .htaccess 文件类型:

    RewriteEngine on
    RewriteRule ^item/(\w+)/details$ details.php?item=$1
    

    URL重写也可以。

    但是,当我试图加载 main.css 居住在 http://example.com details.php ,我从Chrome收到以下消息:

    Failed to load resource: the server responded with a status of 404 (Not Found)
    

    因为它找不到 http://example.com/asdf/main.css .

    是否有任何方法可以将原始URL的“base”或“root”目录与重写的URL一起使用?我想进入 主.css 从动态生成的 asdf “目录”。我不想用 base 在HTML中标记,因为这看起来相当混乱,或者指向父目录,因为我使用的是模板页。

    我试过了 RewriteBase / 但这只会造成另一个错误。有人能帮我吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Abhishek Gurjar    6 年前

    RewriteEngine on
    RewriteBase /item/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^item/(\w+)/details$ details.php?item=$1 [L]
    
        2
  •  0
  •   hsirkar    6 年前

    <base>

    <base href="/<?=$_SERVER["HTTP_HOST"]?>">