我想移动我的 .htaccess 文件 - 重定向到我的 vhost conf 文件...
这是有效的 - 但 htaccess 重定向不是......
<VirtualHost *:80>
ServerName dev.x.com
ServerAlias dev.x.com
DocumentRoot "C:/wwwroot/x"
Alias /modules/ "C:/wwwroot/x/_my_modules/"
ErrorLog "C:/wwwroot/x/_my_logs/error.log"
CustomLog "C:/wwwroot/x/_my_logs/access.log" combined
<Directory "C:/wwwroot/x/_my_logs/" >
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Satisfy all
</Directory>
</VirtualHost>
然后我做了这个 -
<VirtualHost *:80>
ServerName dev.x.com
ServerAlias dev.x.com
DocumentRoot "C:/wwwroot/x"
Alias /modules/ "C:/wwwroot/x/_my_modules/"
ErrorLog "C:/wwwroot/x/_my_logs/error.log"
CustomLog "C:/wwwroot/x/_my_logs/access.log" combined
<Directory "C:/wwwroot/x/_my_logs/" >
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Satisfy all
</Directory>
RewriteEngine on
# if requested URI is not a file and not a directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# externally redirect to /newLocation/{URI}
# RewriteRule (.*) index.php?_req=$1 [L]
# could use a redirect to a new directory ---
RewriteRule ^ /_mf_modules%{REQUEST_URI} [L,R=301]
</VirtualHost>
我的目标是:我希望将任何不存在的“目录”请求重新路由到 _my_modules 目录中该名称的目录。
如果文件不存在,我想重定向到 _my_modules 目录中该名称的目录。
因此,如果 www.x.com/xxx 是 url ......并且 'xxx' 目录不存在,我会重定向到 www.x.com/_my_modules/xxx
同样明智的是,如果请求 www.x.com/xxx.php - 但 xxx.php 不存在,它们将被重定向到 www.x.com/_my_modules/xxx
但是(即使每个目录中都有一个 index.php),这些总是会导致 eURL 重定向到这个...
在此服务器上找不到请求的 URL /modules/modules/modules/modules/modules/modules/modules/modules/modules/modules/modules/modules/modules/modules/modules/modules/modules/modules/modules/_my_modules/ .
所以我受够了,把 vhost 文件改回原来的样子,重新启动 Apache,它仍然在重定向,我无法摆脱这种行为。