【发布时间】:2016-03-27 22:42:00
【问题描述】:
我有一个名为 quick-mvc 的虚拟主机,并且在根目录中有一个 .htaccess 文件。 我已经激活了 mod_rewrite.so。我知道不推荐使用 mod_rewrite,但这是我现在正在使用的,并且希望它能够正常工作。谢谢!
.htaccess 文件
RewriteEngine on
RewriteCond %[REQUEST_FILENAME] !-d
RewriteCond %[REQUEST_FILENAME] !-f
RewriteCond %[REQUEST_FILENAME] !-l
RewriteRule ^(.+)$ index.php?url=$1 [L]
在浏览器前 1
http://quick-mvc/one/two/three/test
$_GET['url'] 返回“index.php”
在浏览器前 2 中
http://quick-mvc/index.php/one/two/three/test
$_GET['url'] 返回“index.php/one/two/three/test”
我想完成什么 即使我像 ex 1 一样添加 index.php,我也想返回 ex 2 显示的内容。我也希望 index.php 不显示。虽然我可以用 php 轻松编写代码。
【问题讨论】:
-
你应该看看重写模块的文档。尤其是像
REQUEST_URI这样的变量对您来说很重要,它们可以让您更轻松地访问您感兴趣的实际请求:httpd.apache.org/docs/current/mod/mod_rewrite.html -
另一件事:我看不出为什么不推荐重写模块的理由“......确实是这样,如果可能的话,应该避免使用
.htaccess样式文件,因为这些文件是臭名昭著的容易出错,难以调试并且真的会降低服务器的速度。因此,如果您可以访问主机配置,则应该将重写规则放在那里。
标签: php .htaccess mod-rewrite get