mod_rewrite和结束斜杠问题(Apache + PHP)

时间:2014-06-19 17:24:26

标签: php apache .htaccess mod-rewrite apache2.2

我一直在寻找相当长的一段时间,但却找不到与我相同的问题。

我希望有人可以帮助我,因为我现在对它感到非常沮丧。

我正在使用mod_rewrite运行Apache 2.2以及我正在处理的PHP项目。

我已经成功为Apache启用了mod_rewrite,我正在使用下面的.htaccess:

RewriteEngine On
RewriteBase /minpt.net/htdocs
RewriteRule ^([a-zA-Z0-9]+)$ ./?page=$1 [L]
RewriteRule ^([a-zA-Z0-9]+)/$ ./?page=$1 [L]

我有一个类似的链接:

http://localhost/myproject/?page=news

我希望能够使用漂亮的网址访问此链接,例如:

http://localhost/myproject/news

或者...

http://localhost/myproject/news/

(注意结束路径)。

使用我当前的.htaccess文件(见上文),链接nr 1没有结束跟踪工作就像我想要的那样。但是一旦我尝试使用结束路径访问URL,我就会进入错误的相对目录,我的CSS,图像等会被搞砸,因为它认为我在另一个工作目录中。

如何防止这种情况发生?

1 个答案:

答案 0 :(得分:0)

您可以通过网站使用绝对链接而不是相对链接来解决此问题。

或者,将以下标记添加到head标记:

<base href="//example.com/myproject/">

这将使用该网址作为您网站中任何相对网址的基础。这会覆盖您正在浏览的当前网址。有关该标记的详细信息,请参阅mdn