.htaccess重写:除主页URL和资源之外,重定向所有URL

3
我希望将除了根URL(//index.php)以及JS/CSS和图片资源之外的所有URL重定向到另一个URL。所有资源都包含在/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]

我需要的规则如下:
  • 不要重写任何包含“assets”的URL
  • 不要重写index.php
  • 不要重写style.php
  • 不要重写根URL
  • 不要重写任何包含.css或.js的URL
谢谢!

1
你的意思是它没有重定向吗?还是说它在不应该重定向时却重定向了? - Jon Lin
是的,提供更详细的信息会对此有所帮助。 - Prix
1个回答

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]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接