.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を再起動しましたが、まだリダイレクトされていて、動作を取り除くことはできません.