2016-08-15 14 views
1

だから私は、以下のURL複数のRewriteCond正規表現

foo/ 
foo/abc/ 
foo/def/ 
foo/ghi/ 
foo/([a-zA-Z0-9\-]+)/ 

を持っていると私は最後のものだけ(複数可)を書き換えたいです。最初の4つ(パスセグメント)は固定されています。

if first path segment is "foo" 
and we have a second path segment 
and second path segment is not "abc" 
and second path segment is not "def" 
and second path segment is not "ghi" 
then ^foo/([a-zA-Z0-9\-]+)/$ index.php?id=20&alias=$1 [L, QSA] 
+0

「固定」とは、実際にはディレクトリとして存在しません(他のすべてはそうではありません)。そのため、おそらく '-d'フラグ(否定に反して)を使うほうがよいでしょう。http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond – CBroe

+0

いいえ、実際のディレクトリではありません。私はそれを「経路セグメント」に変更しました。 – labr1005

答えて

0

ネガティブルックアヘッドを使用できます。

RewriteEngine On 

RewriteRule ^foo/((?!abc|def|ghi)[a-z0-9-]+)/$ index.php?id=20&alias=$1 [L,QSA]