当我尝试访问位于mydomain.com/subfolder
的网站时,我得到一个404(来自Apache)。
/subfolder/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
/subfolder/webroot/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
要确认mod_rewrite
有效,我在/subfolder/.htaccess
文件中将其添加到了及时重定向:
Redirect 301 / http://other-domain-owned.com/
因此,.htaccess
是有效的,mod_rewrite
可以使用。
在我的开发环境中,通过/subfolder
指令为该文件夹启用.htaccess
文件,我能够使网站在同一Directory
内工作。
有些教程说要添加RewriteBase /
,但这没有帮助。
答案 0 :(得分:1)
您也可以使用绝对路径代替RewriteBase
。此外,前两个规则可以简化为一个
RewritRule ^(.*)$ /subfolder/webroot/$1 [L]
类似于第二部分
RewriteRule ^ /subfolder/webroot/index.php [L]
最后,Redirect
和RewriteRule
来自不同的模块。因此,如果其中一个指令正在运行,那么这也不能证明另一个指令是有效的。