在htaccess上使用更具体的重写工具

时间:2012-09-11 03:50:24

标签: php mysql .htaccess rewrite

我想按以下方式替换我的链接

  

www.site.com?action&MasterKategori=Music&kategori=Pop&SubKategori=Western

通过

  

www.site.com/Music/Pop/Western

我使用这个脚本

  

RewriteEngine On

     

RewriteBase /

     

上的RewriteEngine      

RewriteRule ^([a-zA-Z0-9 _-] +)/([a-zA-Z0-9 _-] +)/([a-zA-Z0-9 _-] +)index.php?动作&安培; M = $ 1和; K = $ 2及S = $ 3'/ p>

有效!但是更改我的网站首选项时,所有包含的文件(css,js)也会在点击URL时被重写。

如何阻止这种情况发生?

3 个答案:

答案 0 :(得分:1)

您可以使用重写条件来告知规则不匹配与实际文件对应的URI。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+) index.php?action&m=$1&k=$2&s=$3

答案 1 :(得分:0)

试试这个(你可以在第三行添加你想要的任何扩展名):

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !\.(js|css|png|jpe?g|ico)$
RewriteRule ^([a-z0-9_-]+)/([a-z0-9_-]+)/([a-z0-9_-]+) index.php?action&m=$1&k=$2&s=$3 [L,NC]

答案 2 :(得分:-1)

在RewriteRule

之前添加以下行
RewriteCond $1 !^(favicon\.ico|favicon\.png|media|robots\.txt|crossdomain\.xml|css|js)