我有一个网站,说http://mysite.com。我想将index.php放在子目录public_html/mysubdir/index.php
中。我希望public_html/mysubdir/index.php
在用户转到http://mysite.com时执行。我希望该网址继续阅读http://mysite.com
。这可能吗?
答案 0 :(得分:4)
如果您的网络服务器是Apache,您可以使用URL rewriting with mod_rewrite。
另一个选择是在根目录中创建一个index.php,并在子目录中包含index.php。
答案 1 :(得分:2)
根据您的需要,重写规则可能过度杀戮。对于您的主索引页面,这将有效...
只需将这一行添加到.htaccess
文件中:
DirectoryIndex mysubdir/index.php
只需在网址中显示mysubdir/index.php
,就会显示位于http://mysite.com
的网页。
我自己使用这种方法。虽然所有我的网页都位于同一个子目录中,但主页会自动显示我的域名(http://www.mysite.com
)。所有其他页面都显示完整的URL。
如果您在更深的子目录中也有index
个页面,并且希望这些页面在子目录中默认出现。
示例:
如果您需要此页面:http://mysite.com/mysubdir/anothersub/index.php
提出此网址:http://mysite.com/mysubdir/anothersub/
然后使用另一个index.php
修改该行......
DirectoryIndex mysubdir/index.php index.php
这样做是告诉服务器以相同的顺序查找具有这些名称的文件。如果它找不到第一个,它会尝试第二个,依此类推。
如果您在/
的根目录内找到它,然后会显示mysubdir/index.php
。
当您进入/mysubdir/anothersub/
等其他子目录时,它找不到任何名为mysubdir/index.php
的内容,因此会转到下一个项目并显示index.php
答案 2 :(得分:1)
您可以使用.htaccess文件并定义Rewrite
规则。
http://httpd.apache.org/docs/current/mod/mod_rewrite.html
确保已启用mod_rewrite
,然后将.htaccess文件放在根目录中,如下所示:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ your_subdir/index.php/$1 [L]
</IfModule>