【发布时间】:2014-03-05 08:48:32
【问题描述】:
我想在我的项目中使用干净的 URL。所以我把这些代码写在一个 .htaccess 文件中。
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?page=$1&id=$2 [NC,QSA,L]
RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [NC,QSA,L]
但是当我尝试在本地使用它时它不能完全工作。
假设我在本地 Web 服务器路径的 htdocs (www) 中有一个目录 myproject,其他文件存储在此文件夹中。现在,如果我转到localhost/project,我可以看到该项目。
现在我想使用 URL。
如果我在 URI 中只有一个参数,例如 localhost/myproject/tours,它会很好地工作。但如果我有 2 个参数,如 localhost/myprojects/tours/inside,似乎所有的 css、js 和图像文件都消失了。我还在 .htaccess 文件中添加了RewriteBase /myproject,但没有解决。
我的错误是什么?我需要一个适用于远程和本地服务器的解决方案。
【问题讨论】:
-
为什么不使用通配符创建虚拟主机,它会自动使 myproject 根目录中的任何文件夹成为具有唯一域(如
test.myproject、projectb.myproject等)而不是 localhost 的唯一项目?您还可以轻松地将 myproject 更改为您认为合适的任何名称。 Here is an example with no wildcards but you can easily implement. -
@Prix 我正在寻找 .htaccess 内部的方法
标签: php apache mod-rewrite clean-urls