在 XAMPP 中使用 .htaccess local 重写 URL

Posted

技术标签:

【中文标题】在 XAMPP 中使用 .htaccess local 重写 URL【英文标题】:Rewriting URL with .htaccess local in XAMPP 【发布时间】:2012-06-29 22:24:40 【问题描述】:

我的 .htacces 以

开头
   RewriteEngine on
   RewriteBase /

(我也试过没有 RewriteBase...)

我尝试了以下所有重写规则来重写 URL

index.php?page=news

/博客

重写规则 ^/?([-A-Za-z0-9]+)/([-A-Za-z0-9]+)/blog$ index.php?page=$1 [L] RewriteRule ^([^/]*)/blog$ /sites/blog/index.php?page=$1 [L] RewriteRule ([a-zA-z]+)/([a-zA-z]+)/blog$ index.php?page=$1 [L]

没有任何效果 - 没有错误。 Mod_rewrite 已安装并正在运行。每次更改 .htaccess 中的内容时,我都会重新启动 Apache 和 mysql

我还想更改如下所示的网址...index.php?page=single_news&category=release&id=9&headline=Beastie%20Boys%20III

...进入:blog/release/9​​-Beastie-Boys-III

我迷路了。希望你能帮助我。

【问题讨论】:

【参考方案1】:

首先,将您的 .htaccess 和其他文件(整个项目)上传到某个工作就绪的托管服务器。并检查,如果你的重写工作正常。这会让你知道,如果这是 .htaccess 或 XAMPP 本身的问题。我在本地使用 .htaccess 时遇到了许多奇怪的问题,在 XAMPP 下,在文件上传到 Internet 托管后神奇地消失了。

例如,我没有在本地使用 .htaccess 进行工作自动化,因为在我提供正确的登录名和密码后,我看到的错误消息与您提到的完全相同。至于我,我非常确定这个问题完全与 XAMPP 对 .htaccess 的错误解释有关(因为一切都像生产服务器上的魅力一样),而不是 .htaccess 内容中的一些错误。

我在寻找解决方案上浪费了(太多)时间并离开了它。目前,如果我在本地开发,我将“.htaccess”重命名为“htaccess”,所以它会被 XAMPP(它的 Apache 板载)忽略并仅在将文件部署到生产服务器时重新启用它。这种方法可能不专业,但它为我节省了很多时间和压力! :]

另一方面,如果您的托管也因同样的症状而失败,那么您就会知道,这不是 XAMPP 相关的问题,而且您的语法有问题。

查看 here 以了解 ***.com 上报告的类似问题,其中(我认为)原因与您的问题相同。

【讨论】:

【参考方案2】:

以下是将链接从http://www.domain.tld/index.php?page=blog 更改为http://www.domain.tld/blog 的解决方案是:

RewriteEngine On

RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^\w+$ index.php?page=$0 [L]
RewriteCond %THE_REQUEST index\.php
RewriteCond %QUERY_STRING ^page=(\w+)$
RewriteRule ^index\.php$ /%1? [R=301,L]

对于像这样的链接:http://www.domain.tld/index.php?page=single_news&id=1&headline=This%20Is%20A%Headline

解决办法是:

RewriteRule ^blog/(\d+)-([\w-]+)$ index.php?page=single_news&id=$1&headline=$2

使用此代码后,链接如下所示:http://www.domain.tld/blog/2-this-is-a-headline

【讨论】:

【参考方案3】:

对于你的第一个问题,试试这个:

RewriteEngine on
RewriteRule ^/blog$ /index.php?page=news

【讨论】:

以上是关于在 XAMPP 中使用 .htaccess local 重写 URL的主要内容,如果未能解决你的问题,请参考以下文章

.htaccess 无法使用 XAMPP 在本地主机上工作

为 XAMPP 创建 .htaccess 文件? [复制]

XAMPP/Apache 文件夹中的 .htaccess 未找到错误 404

在 ubuntu 13.10 上从 XAMPP 移动到 LAMP 后 htaccess 不起作用(在 apache linux 服务器中启用 htaccess)

xampp 上 .htaccess 文件的奇怪行为

.htaccess 没有被使用 XAMPP 读取