1

インデックス ページの変数を設定するセットアップがありますが、ディレクトリに対しても同じことを行うので、そうしたくありません。ここに私の .htaccess ファイルがあります:

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/(login|images|favicon\.ico|home|about|sitemap|contactus|termsandconditions|privacypolicy|signup|search|careers|error|css|js) [NC]

RewriteRule ^([a-zA-Z0-9]+)$ index.php?name=$1
RewriteRule ^([a-zA-Z]+)/$ index.php?name=$1

RewriteRule ^([a-zA-Z]+)/([a-zA-Z0-9_]+)$ index.php?name=$1&page=$2
RewriteRule ^([a-zA-Z]+)/([a-zA-Z0-9_]+)/$ index.php?name=$1&page=$2

RewriteRule ^php/$ error/

さて、この設定で、入力すると、ページmysite.com/loginにリダイレクトされ、変数として設定されます。ディレクトリを無視する場所にするにはどうすればよいですか? これは私をイライラさせ、答えを求めてこのサイトを 1 時間以上調べましたが、同様の質問を見つけることができません (私もそれを嫌うかもしれませんが、笑)。index.phploginname

また、最後の をRewriteRule見ると、自分のフォルダーにアクセスしようとする試みを自分のphp/フォルダーにリダイレクトしようとしていることがわかりerror/ます。これも機能していません。

4

2 に答える 2

1

RewriteCond直後の のみに適用されますRewriteRule。また、行 3 と 4、および 5 と 6 をそれぞれ/?最後に使用して結合することもできます。これにより、/オプション ( regex ) が作成されます。

ファイルは次のようになります。

RewriteEngine On
#the following line will not rewrite to anything because of "-", & stop rewiting with [L]
RewriteRule ^(login|images|favicon\.ico|home|about|sitemap|contactus|termsandconditions|privacypolicy|signup|search|careers|error|css|js)/?(.*)$ - [L,NC]
RewriteRule ^php/?(.*)$ error/ [L,NC]
RewriteRule ^([^/]+)/?$ index.php?name=$1 [L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?name=$1&page=$2 [L]

Apache Mod_Rewrite Documentationに興味があるかもしれません。

于 2012-06-09T02:07:16.050 に答える
0
RewriteCond %{REQUEST_URI} !^/(login|images|favicon\.ico|home|about|sitemap|contactus|termsandconditions|privacypolicy|signup|search|careers|error|css|js) [NC] !-d


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

ディレクトリまたはファイルでルールを実行しない

mod_rewriteドキュメント ページの詳細については、次を検索してください。CondPattern

于 2012-06-09T02:06:59.300 に答える