RewriteRule没有联系和关于单词

时间:2015-01-27 13:38:59

标签: php regex apache .htaccess

所以基本上有些词不能与RewriteRule一起使用,这让我发疯了。

这是我的htaccess代码,它不起作用:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^contact/?$ index.php?page=contact [NC,L]
    RewriteRule ^about/?$ index.php?page=about [NC,L]

使用此我收到此错误:"在此服务器上找不到请求的URL / about。"

如果我改变了#34;请联系"和"关于"除了工作正常之外,还有其他任何一个词:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^contactme/?$ index.php?page=contact [NC,L]
    RewriteRule ^aboutme/?$ index.php?page=about [NC,L]

这很好用,但我想使用简单的联系和约。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用:

RewriteEngine On
Options -MultiViews
RewriteBase /
RewriteRule ^contact/?$ index.php?page=contact [NC,L]
RewriteRule ^about/?$ index.php?page=about [NC,L]

MultiViews的效果如下:如果服务器收到/ some / dir / foo的请求,如果/ some / dir启用了MultiViews,并且/ some / dir / foo不存在,那么服务器会读取目录查找名为foo。*的文件,并有效地伪造一个命名所有这些文件的类型映射,为它们分配相同的媒体类型和内容编码,如果客户端通过名称请求其中一个文件。然后,它会根据客户的要求选择最佳匹配。