使用.htaccess重写URL但忽略特定目录

时间:2012-02-10 04:56:46

标签: apache .htaccess mod-rewrite url-rewriting

我在网站上有一个目录:

在其中我有一个。htaccess文件。

我想要它采取这样的任何URL:

并将其重写为:

除了引用这些目录的任何URL:

我的第一部分有效,但无法告诉它排除某些目录中的文件:

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^([^/]+)/([^/]+) index.php?arg1=$1&arg2=$2 [NC]

更新

这是一个非常基本和简单的意义:

RewriteRule ^css - [L,NC]
RewriteRule ^javascript - [L,NC]
RewriteRule ^images - [L,NC]
RewriteRule ^([^/]+)/([^/]+) index.php?arg1=$1&arg2=$2 [NC]

但我确信有一个更优雅的解决方案?

2 个答案:

答案 0 :(得分:2)

我认为您正在寻找的关键字是RewriteCond。它与你最终的结果非常相似。

RewriteCond %{REQUEST_URI} !^(css|javascript|images)
RewriteRule ^([^/]+)/([^/]+) index.php?arg1=$1&arg2=$2 [NC]

答案 1 :(得分:1)

您可以使用RewriteCond检查实际文件是否存在...至少,当我想要CSS,Javascripts和图像等内容可访问时,我会将其用于网站(没有请求)被重定向。)

这是我使用的行:

# only rewrite if the requested file doesn't exist
RewriteCond %{REQUEST_FILENAME} !-s

请告诉我这是否适合您!