2012-03-22 8 views
0

これは私のmod_rewriteのルールです:http://www.mysite.com/index.php?id=abchttp://www.mysite.com/abc/を書き換えますmod_rewriteの既存のディレクトリ

RewriteEngine On 
RewriteRule ^([^./]+)/?$ index.php?id=$1 [L] 

。しかし、そこにはサブディレクトリがあり、書き直したくありません。したがって、ディレクトリが存在する場合は、そのディレクトリだけを使用する必要があります。そうでない場合は、書き換えを使用します。これはどうすればできますか?

答えて

2

パイとして簡単:

RewriteEngine On 
# Make sure it's not a real directory 
RewriteCond %{REQUEST_FILENAME} !-d 
# Make sure it's not a real file 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^./]+)/?$ index.php?id=$1 [L] 

ねえ、それは答えを見つけるために私に2秒を取った方法によって:2Sは=と入力する時間が

+0

あなたは素晴らしいです:D – Patrick

+0

これは私の喜びでした! –

0

を「のRewriteRuleファイルが存在しない」ことを忘れないでくださいこれを以下に含むRewriteEngine On

RewriteBase /yourdirectory 
関連する問題