我拥有的
我有一个配置为指向我的服务器的域。
当我进入我的域时,假设:
example.com
它将我重定向到:
http://104.286.131.72/mysitefolder/index.php?
当然,它向我展示了正确的网站。
我有这个的 apache,以及一个名为的文件,/etc/apache2/sites-enabled/000-default.conf
内容如下:
<VirtualHost *:80>
DocumentRoot /var/www/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/mysitefolder/
ServerName example.com
ServerAlias www.example.com
</VirtualHost>
我想要的是
当我进入我的域时:
example.com
它将我重定向到:
http://example.com/index.php?
并向我展示同一个网站。
我怎样才能做到这一点?
更新1
尝试将第二个块更改为@imvikasmunjal 答案,然后我得到这个:
The requested URL /mysitefolder/index.php was not found on this server.
该/var/log/apache2/access.log
文件称:
190.126.199.244 - - [25/Apr/2016:01:43:43 -0400] "GET /mysitefolder/index.php? HTTP/1.1" 404 521 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"
更新2
我有一个.htaccess
这样的:
#Domain: 104.286.131.72
RewriteRule . - [E=REWRITEBASE:/mysitefolder/]
RewriteRule ^api$ api/ [L]
RewriteRule ^api/(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]
# AlphaImageLoader for IE and fancybox
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]
</IfModule>
....
答案1
我认为你不需要这个 ->RewriteRule 。-[E=REWRITEBASE:/mysitefolder/]
因为您的 DocumentRoot 已经指向 /var/www/mysitefolder/ 。您可以尝试注释掉此规则或将其替换为 RewriteRule 。- [E=REWRITEBASE:/]
希望这可以帮助。
答案2
您必须将域名与 IP 地址绑定。
<VirtualHost *:80>
DocumentRoot /var/www/mysitefolder/
ServerName example.com
ServerAlias www.example.com
</VirtualHost>
而不是这样使用:
<VirtualHost example.com:80>
DocumentRoot /var/www/mysitefolder/
ServerName example.com
ServerAlias www.example.com
</VirtualHost>
代替*
添加域名。