.htaccess rewrite:重定向除主页URL和资产之外的所有URL

时间:2013-09-05 20:37:20

标签: .htaccess redirect url-rewriting

我希望除了我的根网址(//index.php)以及它使用的JS / CSS和图片资源之外的所有网址都重定向到另一个网址。所有资产都包含在/ assets目录中

这是我到目前为止所做的,但它不起作用

RewriteEngine on

RewriteRule ^(.*)\.(?!js|css)([^.]*)$ $1\.php

RewriteCond %{REQUEST_URI} !^.assets$
RewriteCond %{REQUEST_URI} !/index.php$
RewriteCond %{REQUEST_URI} !/style.php$
RewriteCond %{REQUEST_URI} !/$

RewriteRule $ http://berlincallingny.eventbrite.com [R=302,L]

我需要的规则是:

  • 不要重写任何包含“资产”的网址
  • 不要重写index.php
  • 不要重写style.php
  • 不要重写根URL
  • 不要重写任何包含.css或.js
  • 的网址

谢谢!

1 个答案:

答案 0 :(得分:1)

assets目录的正则表达式在这里不正确:

RewriteCond %{REQUEST_URI} !^.assets$

用以下代码替换您的代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !^/assets(/.*|)$ [NC]
RewriteCond %{REQUEST_URI} !/(index|style)\.php$ [NC]
RewriteRule ^.+$ / [R=302,L]