我正在尝试使用PHP的替代方法:
$request = explode("/", substr(@$_SERVER['PATH_INFO'], 1));
上面的片段将让我使用诸如" www.example.com/index.php/article/how-to-diy"之类的URL,其中"/actits/acties/how-to-diy"是URL参数。
不过,我真的很想失去" index.php",而且我绝不是.htaccess-wiz,所以我可以在制作rewriterule
时使用一些帮助,以将我的URL更改为" www"。example.com/article/how-to-diy"。
我已经环顾四周,我发现的示例都与经典的参数语法有关(即" index.php?page = 12"),我不是我追求的解决方案。
<</p>我习惯于典型的MVC/WordPress处理URL的方式...在HTACCESS和URL路由器中的所有工作中更少的工作。我举一个例子:
.htaccess
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
</IfModule>
然后,在index.php中调用一个路由机制,该机制解析您的URL并产生适当的页面。但是不要使用 path_info ,您需要知道要请求的内容:
$request = explode("/", @$_SERVER['REQUEST_URI']);
编辑:
如果脚本(index.php)和.htaccess不在文档根中,则重写应反映这一点:
RewriteRule . /path/to/index.php
然后,路由机制应简单地循环浏览$请求,以找到所需的零件。