mod_rewrite的url

时间:2012-05-01 12:16:30

标签: php mod-rewrite

我有一些mod重写,会删除.php并格式化一个名为county.php的页面。

我的问题在于重写county.php的部分。我必须在css,images和js文件的所有链接前放置一个'/'。这会导致网站的其他部分出现问题,因为我使用的是php。有没有解决的办法?感谢

RewriteEngine On
RewriteRule ^county/([^/\.]+)/?$ county.php?county_id=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php

1 个答案:

答案 0 :(得分:1)

如果您使用mod_rewrite创建虚拟文件夹,则必须处理所有其他媒体类型(CSS,JS,图像......)的不同文件夹名称。处理动态数量的文件夹甚至某​​些带有文件夹的页面,有些没有使它更复杂。

我看到以下解决方法:

  1. 始终使用相同数量的文件夹(文件夹深度) - 或

  2. 不要使用/字符分隔参数(例如“county_xzy”) - 或

  3. 为您的媒体文件创建mod_rewrite规则

  4. 示例:

    RewriteEngine On
    RewriteRule .*/(.*?)\.css$ css/$1.css
    RewriteRule .*/(.*?)\.js$ js/$1.js
    RewriteRule .*/(.*?)\.(jpg|jpeg|png|gif)$ images/$1.$2
    RewriteRule ^county/([^/\.]+)/?$ county.php?county_id=$1 [L]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule (.*) $1.php