linux服务器中Apache隐藏index.php失败
可以通过URL重写隐藏应用的入口文件index.php
,下面是相关服务器的配置参考:
【Apache】
- httpd.conf配置文件中加载了mod_rewrite.so模块
- AllowOverride None 将None改为 All (PS:所有的AllowOverride对应的None都改为ALL)
- 把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
#如果页面出现"No input file specified." 请注释第一条,启用第二条
RewriteRule ^(.*)$ $1.php [QSA,PT,L]
#RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
#RewriteRule ^(.*)$ index.php [E=PATH_INFO:$1,QSA,PT,L]
</IfModule>
以上操作全部都完成,重启apache后还是失败,原因在与include的【httpd-vhosts.conf】中配置没有改成允许URL重写。
只需将
DocumentRoot "F:/wamp/www/test" ServerName www.test.com ServerAlias admin.tpshop.com DirectoryIndex index.html index.htm index.php Options FollowSymLinks AllowOverride none Order allow,deny Allow from all
改成
DocumentRoot "F:/wamp/www/test" ServerName www.test.com ServerAlias admin.tpshop.com DirectoryIndex index.html index.htm index.php Options FollowSymLinks AllowOverride All Order allow,deny Allow from all
然后保存,重启apache就可以了。