1

我的 .htacces 以

   RewriteEngine on
   RewriteBase /

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

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

index.php?page=news

/博客

  • RewriteRule ^/?([-A-Za-z0-9]+)/([-A-Za-z0-9]+)/blog$ index.php?page=$1 [L]
  • 重写规则 ^([^/]*)/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

...进入:博客/发布/9-Beastie-Boys-III

我搞不清楚了。希望您能够帮助我。

4

3 回答 3

2

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

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

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

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

在此处查看StackOverflow.com 上报告的类似问题,其中(我认为)原因与您的问题相同。

于 2012-06-29T09:29:15.550 回答
2

以下是将链接更改为的解决方案http://www.domain.tld/index.php?page=bloghttp://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

于 2012-10-27T13:10:39.020 回答
1

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

RewriteEngine on
RewriteRule ^/blog$ /index.php?page=news
于 2012-07-27T15:54:54.987 回答