扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
apache如何rewrite到虚拟目录?
<VirtualHost 127.0.0.1>
ServerName 127.0.0.1
DocumentRoot "F:/website/bo_v3/www/"
Alias /php/ "F:/website/bo_v3/php/"
RewriteEngine on
RewriteRule ^/nba/game/text_([0-9]+)\.html\?*(.*)$ /php/nba/game_info\.php\?action=text&game_id=$1&$2 [L]
</VirtualHost>
F:/website/bo_v3/www/ 下没有php这个目录
这个样子下,如果我访问http://127.0.0.1/nba/game/text_222.html,是会提示404的错误的。
反复测试发现只要是虚拟目录的就不可以,
必须在F:/website/bo_v3/www/下的目录中存在重写到的文件才可以正常使用。
以前用iis,这个是可以实现的。
在apache下如何实现呢…不要用反向代理,好像效率很低。
<VirtualHost 13.24.32.34:80>
ServerName 127.0.0.1
DocumentRoot F:/website/bo_v3/www/
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/nba/game/text_([0-9]+)\.html\?*(.*)$ /php/nba/game_info\.php\?action=text&game_id=$1&$2 [L]
</IfModule>
</VirtualHost>
php/nba/game_info.php?action=text&game_id=444 会转向到 /nba/game/text_444.html ,但是你没有/nba/这个目录,所以404。
解决的办法是照抄/php/的设置,把/nba/也用alias指到合适的位置
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者