.htaccess重写问题。可能保留的话?

时间:2012-12-04 12:27:49

标签: php regex apache .htaccess

这不需要太多解释,很简单,下面的工作如何:

RewriteRule ^errors/browser/?$ /_errors/browser.php?error=browser [NC,QSA,L]

这不起作用:

RewriteRule ^error/browser/?$ /_errors/browser.php?error=browser [NC,QSA,L]

以上两个片段的唯一区别是从s 一词的末尾删除了字母error

我无法理解为什么在单词s上添加error会突然使此代码生效。我能想到的唯一解释是error是一个保留字?是这种情况吗?

如果是这种情况,那么如何使用error文件匹配和重写单词.htaccess

更新

这是我的整个.htaccess文件:

# Define the default document
DirectoryIndex index.php

# Turn on the rewrite engine
RewriteEngine On

# Compress all HTML, Javascript, CSS, XML... files
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# Set the error page rewrites
RewriteRule ^errors/browser/?$ /_errors/browser.php?error=browser [NC,QSA,L]

# Set the general first level rewrites
RewriteRule ^([a-z-]+)\/?$ $1.php? [NC,QSA,L]
RewriteRule ^([a-z-]+)\/([a-z-0-9]+)\/?$ $1.php?id=$2& [NC,QSA,L]

1 个答案:

答案 0 :(得分:1)

很奇怪vim会突出显示“错误”这个词,但你可能只是试着这个来破解它:

RewriteEngine On
RewriteRule ^erro[r]/index.html [NC,QSA,L]

这是一个可能相关的问题:question-10872503