私のapacheサイト構成ファイルには、次のものがあります。書き換えルールは正常に機能しますが、このルールは、書き換え条件が修正されるはずの既存のディレクトリに適用されます。これが私の書き直しスクリプトです:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9_]+)/?$ test.php?n=$1 [L]
したがって、example.com/username
うまく機能し、を使用しますtest.php
が、ファイルを含む既存のサブディレクトリに入るindex.php
と、別名、example.com/myDirectory/
test.phpを使用します。私のスクリプトの何が問題になっているのでしょうか。ありがとう。
myDirectory
以下は、既存のディレクトリであるリクエストの書き換えログです。
(2) init rewrite engine with requested uri /myDirectory/
(1) pass through /myDirectory/
(3) [perdir /var/www/] strip per-dir prefix: /var/www/myDirectory/ -> myDirectory/
(3) [perdir /var/www/] applying pattern '^tag/([a-zA-Z0-9-]+)/?$' to uri 'myDirectory/'
(3) [perdir /var/www/] strip per-dir prefix: /var/www/myDirectory/ -> myDirectory/
(3) [perdir /var/www/] applying pattern '^([a-zA-Z0-9_]+)/?$' to uri 'myDirectory/'
(2) [perdir /var/www/] rewrite 'myDirectory/' -> 'test.php?n=myDirectory'
(3) split uri=test.php?n=myDirectory -> uri=test.php, args=n=myDirectory
bananas
そして、これがリライトを使用することを意図した(そして実際に実行する)リクエストのログです:
(2) init rewrite engine with requested uri /bananas
(1) pass through /bananas
(3) [perdir /var/www/] strip per-dir prefix: /var/www/bananas -> bananas
(3) [perdir /var/www/] applying pattern '^tag/([a-zA-Z0-9-]+)/?$' to uri 'bananas'
(3) [perdir /var/www/] strip per-dir prefix: /var/www/bananas -> bananas
(3) [perdir /var/www/] applying pattern '^([a-zA-Z0-9_]+)/?$' to uri 'bananas'
(2) [perdir /var/www/] rewrite 'bananas' -> 'test.php?n=bananas'
(3) split uri=test.php?n=bananas -> uri=test.php, args=n=bananas