如何简化Apache重写?

时间:2014-03-09 15:41:08

标签: apache mod-rewrite apache2

在〜/ public_html / foo中我有一个.htaccess文件,它将.php扩展名附加到不存在的文件中:

RewriteEngine On
RewriteBase /~august/foo
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME}.php -f
RewriteRule .* $0.php

理想情况下,我想使这个.htaccess文件独立于项目文件夹foo的存储位置。有没有办法重写(!)规则来消除/~august / foo?

1 个答案:

答案 0 :(得分:0)

创建一个重写条件,它“提取”请求URI的/ ~username / projectdir部分(如果不存在,则为空字符串)并将其添加到重写规则中:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME}.php -f
RewriteCond %{REQUEST_URI} ^(/~[^/]*/[^/]*/)?
RewriteRule (.+?)/*$ %0$1.php