【问题标题】:Rewriting URL with .htaccess local in XAMPP在 XAMPP 中使用 .htaccess local 重写 URL
【发布时间】: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

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

【问题讨论】:

    标签: .htaccess mod-rewrite url-rewriting xampp


    【解决方案1】:

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

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

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

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

    查看 here 以了解 StackOverflow.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
        

        【讨论】:

          猜你喜欢
          • 2019-07-05
          • 2012-07-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-03
          相关资源
          最近更新 更多