Apache mod_rewrite不会从文件夹中读取

时间:2012-07-19 22:40:36

标签: apache .htaccess mod-rewrite redirect

RewriteEngine On
RewriteBase /city_name

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /city_name/index.php?page=$1 [L]

所以我有这个工作,所以如果我做domain.com/calgary/它会正确地从数据库中读取。

但是,如果我执行domain.com/calgary/test.php该文件夹无法正常读取,因为它认为文件位于/ calgary /中,即使它是虚拟目录。

所以我正在寻找/ city_name /文件夹中的.htaccess目录中的帮助,以便它从/ city_name /目录中读取带有.php的文件,而不是/ calgary /(虚拟)

1 个答案:

答案 0 :(得分:1)

尝试添加以下规则:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /([^\./]+)\.php$
RewriteCond %{DOCUMENT_ROOT}/city_name/%1.php -f
RewriteRule ^(.*)/([^\./]+)\.php$ /city_name/$2.php?page=$1 [L]