AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 28862
Accepted
Andrew
Andrew
Asked: 2009-06-20 10:40:48 +0800 CST2009-06-20 10:40:48 +0800 CST 2009-06-20 10:40:48 +0800 CST

如何在 Apache 上启用 mod_rewrite ???看起来它已启用,但它不起作用

  • 772

对不起,我不知道我在做什么,我需要你的帮助。我有一个 htaccess 文件,它进行了一些 url 重写,但它在服务器上不起作用。我不认为 mod_rewrite 已启用。但它没有被注释掉,并且 phpinfo() 说它是启用的模块之一。

我不知道该怎么办。请帮忙!

从我的 .htaccess 文件中:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

更新:我在 http.conf 中将此行从 none 更改为 all:

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride All

我保存了它。试图重新启动 apache(按照我的 IT 人员所说的:/sbin/service httpd restart),但 apache 无法重新启动说:

Stopping httpd: [FAILED]
Starting httpd: [FAILED]
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

现在我无法回滚,因为我收到了同样的信息……出了什么问题!

apache-2.2 mod-rewrite
  • 2 2 个回答
  • 2765 Views

2 个回答

  • Voted
  1. Best Answer
    David Pashley
    2009-06-20T10:54:04+08:002009-06-20T10:54:04+08:00

    您需要在所需的特定区域启用 mod_rewrite 功能,无论是在 Location、VirtualHost 或 .htaccess 中。你可以这样做

    RewriteEngine on
    RewriteRule   ^oldstuff\.html$  newstuff.html
    

    您可以通过使用 RewriteLog 和 RewriteLogLevel 选项打开日志记录来查看模块正在执行的操作:

    RewriteLog "/var/log/apache/rewrite.log" 
    RewriteLogLevel 2
    

    日志级别最高为 9,但文档警告不要超过 2 进行生产。完成调试后,我建议将其完全关闭。

    您可以在mod_rewrite 文档中找到更多信息。

    在查看了您的使用情况后,您似乎正在尝试将不存在的项目发送到 index.php。你可以在不使用 mod_rewrite 的情况下做类似的事情:

     ErrorDocument 404 http://this.server/path/index.php
    

    这会将用户重定向回 index.php 并要求您对位置进行硬编码,这可能并不理想。

    或者,我建议颠倒条件的含义并删除第一个 RewriteRule。“如果请求不是文件,也不是链接,也不是目录,则重定向到 index.php”。这将使您的规则更简单。您也可以从 RewriteRules 中丢失 [NC] 标志,因为它不会产生任何影响。

    RewriteEngine On
    RewriteCond ! %{REQUEST_FILENAME} -s
    RewriteCond ! %{REQUEST_FILENAME} -l
    RewriteCond ! %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ index.php [L]
    

    (我还没有检查这是否有效)

    • 3
  2. Physikal
    2009-06-20T11:40:06+08:002009-06-20T11:40:06+08:00

    重新启动 Apache 服务器?

    • 0

相关问题

  • 阿帕奇的替代品

  • 如何强制我的网址始终以 www 开头?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve