【问题标题】:How to do a simple Mod_Rewrite如何做一个简单的 Mod_Rewrite
【发布时间】:2013-10-29 23:17:14
【问题描述】:

我只是想清理以下网址:

/// FROM :
http://mydomain.com/about.php
http://mydomain.com/contact.php

/// TO:
http://mydomain.com/about
http://mydomain.com/contact

我的 .htaccess 文件:

 Options +FollowSymlinks
 RewriteEngine on


 RewriteRule ^about about.php [NC]  

错误:

Not Found

The requested URL /about was not found on this server.

这里有什么问题?

【问题讨论】:

    标签: apache .htaccess mod-rewrite clean-urls


    【解决方案1】:

    为避免无限循环,您可以在 .htaccess 中使用它:

    Options +FollowSymlinks
    RewriteEngine on
    
    RewriteRule ^(about|contact)$ $1.php [NC,L]
    

    [NC,L] 可能很重要,rewrite_mod 应该被启用

    a2enmod rewrite
    

    【讨论】:

    • 仍然出现 404 Not Found 错误
    • 我在apache2中测试过,它有效吗?您在同一文件或父目录中有其他规则吗?
    • 否 .htaccess 与您的答案完全相同。也许 apache 设置已关闭?
    • contact.php 和 about.php 文件确实存在于与 .htaccess 相同的目录中,并且可以被其他人读取或由 www-data (如 apache 用户)拥有。
    • 它们确实存在于同一个目录中,并且是可读的。 http://mydomain.com/about.php 工作
    【解决方案2】:

    看来我不得不禁用默认启用的multiviews

    我的 .htaccess:

    Options +FollowSymLinks -Multiviews
    RewriteEngine on
    
    RewriteRule ^(about|contact)$ $1.php [NC,L]
    

    【讨论】:

      猜你喜欢
      • 2020-12-18
      • 2016-07-11
      • 1970-01-01
      • 2023-01-19
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      • 2012-09-29
      相关资源
      最近更新 更多