我正在开发一个小型Web应用程序,我的目录结构是这样的:
htdocs/s/index.php
htdocs/s/views/
htdocs/s/vendors/
我使用了这个.htaccess:
<IfModule mod_rewrite.c>
Options -MultiViews
Options +FollowSymlinks
RewriteEngine On
RewriteBase /s/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
这样我就可以输入localhost/s/aaaa
来访问localhost/s/index.php/aaaa
。但我已将我的目录结构更改为:
htdocs/s/web/index.php
htdocs/s/views/
htdocs/s/vendors/
我不知道如何让.htaccess将localhost/s/aaa
重定向到localhost/s/web/index.php/aaa.
我尝试了很多但却没有结果。这里有更多关于.htaccess和mod_rewrite的人可以帮助我吗?
编辑:似乎用我的lampp服务器或类似的设置它是不可能的。但是,人们如何设法使WordPress,Joomla和其他CMS做到这一点?在开发环境中,这并不是那么重要,但是当我将其上传到互联网时,可以通过某种方式将应用程序的所有库和内部隐藏到Web访问者。我的意思是每个人都这样做,对吗?那怎么办呢?
编辑2:由于一些奇怪的原因,它不能在我的家庭服务器中,所以我回到我以前的目录结构,并在想要的目录中使用带有“deny For All”的.htaccess进行讨厌的黑客攻击隐藏。你不会隐藏很多,但我找不到任何其他解决方案......答案 0 :(得分:0)
如果你提供的重写规则对你来说很好,那么这应该也可以正常工作:
<IfModule mod_rewrite.c>
Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /s/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ web/index.php [QSA,L]
</IfModule>