在我的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