子域中的rewritebase使php成为可下载的文件

时间:2014-06-07 17:02:18

标签: php apache .htaccess mod-rewrite

我在理解htaccess如何运作方面遇到了很大的问题。

案例1:我在root(/ public_html /)目录中有我的htaccess

这是我的htaccess的内容:

RewriteBase /

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule "^(.*)$" "index.php?_url=$1" [QSA,L]
RewriteRule /*\.(css|js|gif|png|jpe?g|ico|swf|csv|html|xlsx|xls|xml)$ - [NC,L]
AddType application/x-httpd-php .php

完全转变,说" http://sitename.com/stuff/here"到" http://sitename.com/?_url=stuff/here"

BUT!案例2,我在子域中有我的htaccess

目标:转换" http://mini.sitename.com/stuff/here"到" http://mini.sitename.com/?_url=stuff/here"

在这种情况下,如果我将htaccess放在在/ public_html / mini / 在/ public_html / 目录中,htaccess包含此内容:

RewriteBase /mini/
# the rest are similar to above

http://mini.sitename.com/ 下载 index.php文件而不是运行它!这有多疯狂?!

所以我的问题是:

  1. 显然,我需要在.htaccess文件中写什么,我应该在哪里放置.htaccess文件来实现这个目标?
  2. 为什么下载会发生?我的意思是,我甚至不......什么?

1 个答案:

答案 0 :(得分:0)

只需将其放在/mini/.htaccess

RewriteEngine On

DirectoryIndex index.php

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

假设DocumentRoot子域mini/public_html/mini/