在我的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
第1步:打開網址的記錄改寫(以'RewriteLog'和'RewriteLogLevel'),看看到底發生了什麼(如果發佈日誌,他們不似乎沒有立即說明問題)。 – larsks
@larsks好的,添加它們。但是我沒有看到任何讓我想起爲什麼忽略現有目錄的東西...... – inorganik