我将提供一些我的问题的背景。我正在为 PHP CMS 开发静态 HTML5/CSS3 原型。我想要的一件事是拥有干净的 URL。一开始我有这样的东西:
localhost:8888/file.php
并希望它:
localhost:8888/file
或没有斜线localhost:8888/file
我在 Stackoverflow 上进行了快速搜索,发现了几个关于这件事的结果,我很乐意用这个来完成这项工作:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.*?)/?$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^(.*?)/?$ $1.php
RewriteRule ^(.*?)/?$ $1.php
这种方法的问题是当我想在我的 CMS 结构上设置深层级别时,比如站点/帖子。如果没有 mod_rewrite,我需要创建文件夹并对代码进行重大更改,以使事情像 ../images/ 到 ../../images/ 等那样工作,所以对该解决方案嗤之以鼻。我需要使用 mod_rewrite 才能使其工作。
此外,该 mod_rewrite 代码块也不适用于文件夹内容,因此我在这里开始搜索以找到解决方案,以便我可以执行/level1_level2_levelx.php
to/level1/level2/level3/
或/level1/level2/level3
. 我确实在很多方面进行了搜索,但我没有找到正确的答案。
谢谢你们,
PD:我正在使用 MAMP。