无法使用mod_rewrite添加.php

时间:2014-03-09 12:21:18

标签: apache mod-rewrite apache2

我正在目录〜/ public_html / foo中处理一个web项目,我正在尝试重写URL:s,以便自动添加扩展名.php。对于项目目录中的bar.php文件,我可以访问

http://localhost/~august/foo/bar.php

但是当我尝试访问

http://localhost/~august/foo/bar

我得到404说

The requested URL /home/august/public_html/foo/bar.php was not found on this server.

以下是〜/ public_html / foo / .htaccess的内容:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME}.php -f
RewriteRule .* $0.php

并且这些消息显示在错误日志中:

[Sun Mar 09 16:04:12.339671 2014] [rewrite:trace3] [pid 21219] mod_rewrite.c(468): [client 127.0.0.1:36432] 127.0.0.1 - - [localhost/sid#7f193916dd80][rid#7f19390260a0/initial] [perdir /home/august/public_html/foo/] strip per-dir prefix: /home/august/public_html/foo/bar -> bar
[Sun Mar 09 16:04:12.339742 2014] [rewrite:trace3] [pid 21219] mod_rewrite.c(468): [client 127.0.0.1:36432] 127.0.0.1 - - [localhost/sid#7f193916dd80][rid#7f19390260a0/initial] [perdir /home/august/public_html/foo/] applying pattern '.*' to uri 'bar'
[Sun Mar 09 16:04:12.339765 2014] [rewrite:trace4] [pid 21219] mod_rewrite.c(468): [client 127.0.0.1:36432] 127.0.0.1 - - [localhost/sid#7f193916dd80][rid#7f19390260a0/initial] [perdir /home/august/public_html/foo/] RewriteCond: input='/home/august/public_html/foo/bar' pattern='!-d' => matched
[Sun Mar 09 16:04:12.339781 2014] [rewrite:trace4] [pid 21219] mod_rewrite.c(468): [client 127.0.0.1:36432] 127.0.0.1 - - [localhost/sid#7f193916dd80][rid#7f19390260a0/initial] [perdir /home/august/public_html/foo/] RewriteCond: input='/home/august/public_html/foo/bar' pattern='!-f' => matched
[Sun Mar 09 16:04:12.339796 2014] [rewrite:trace4] [pid 21219] mod_rewrite.c(468): [client 127.0.0.1:36432] 127.0.0.1 - - [localhost/sid#7f193916dd80][rid#7f19390260a0/initial] [perdir /home/august/public_html/foo/] RewriteCond: input='/home/august/public_html/foo/bar.php' pattern='-f' => matched
[Sun Mar 09 16:04:12.339808 2014] [rewrite:trace2] [pid 21219] mod_rewrite.c(468): [client 127.0.0.1:36432] 127.0.0.1 - - [localhost/sid#7f193916dd80][rid#7f19390260a0/initial] [perdir /home/august/public_html/foo/] rewrite 'bar' -> 'bar.php'
[Sun Mar 09 16:04:12.339821 2014] [rewrite:trace3] [pid 21219] mod_rewrite.c(468): [client 127.0.0.1:36432] 127.0.0.1 - - [localhost/sid#7f193916dd80][rid#7f19390260a0/initial] [perdir /home/august/public_html/foo/] add per-dir prefix: bar.php -> /home/august/public_html/foo/bar.php
[Sun Mar 09 16:04:12.339835 2014] [rewrite:trace1] [pid 21219] mod_rewrite.c(468): [client 127.0.0.1:36432] 127.0.0.1 - - [localhost/sid#7f193916dd80][rid#7f19390260a0/initial] [perdir /home/august/public_html/foo/] internal redirect with /home/august/public_html/foo/bar.php [INTERNAL REDIRECT]

任何线索?

1 个答案:

答案 0 :(得分:0)

我通过添加

解决了这个问题
RewriteBase /~august/foo
在行RewriteEngine On之后