这些声明在我的.htaccess文件中意味着什么?

时间:2009-03-03 19:06:46

标签: apache .htaccess mod-rewrite

我是PHP的新手。任何人都可以告诉我每条线在这里做什么。我需要这个吗?它给了我错误

RewriteCond %{REQUEST_URI} /~([^/]+)/?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /~%1/rewrite.php?p=$1&%{QUERY_STRING} [L]
RewriteCond %{REQUEST_URI} /~([^/]+)/?
RewriteRule ^index\.php?(.*)$ /~%1/rewrite.php?p=%1&%{QUERY_STRING} [L]
#there is no ~ character in the URL
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) ./rewrite.php?p=$1&%{QUERY_STRING} [L]
RewriteRule ^index\.php?(.*)$ ./rewrite.php?p=$1&%{QUERY_STRING} [L]
#WJ-180 fix
RewriteRule ^resume\.php?(.*)$ ./rewrite.php?p=resume\.php$1&%{QUERY_STRING} [L]

5 个答案:

答案 0 :(得分:3)

如果您是新手,请阅读http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html,其解释非常好。

p.s。您的标题“这些声明在我的PHP .htaccess文件中意味着什么?”是不正确的.htacces不是php文件。

答案 1 :(得分:2)

这些说

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

“如果请求与现有文件或目录不匹配,则仅使用以下规则。”

答案 2 :(得分:0)

这些是mod_rewrite配置条目。

答案 3 :(得分:0)

它是一个Apache mod_rewrite规则。除非你使用某种框架,否则你可能不需要它。有关详细信息,请参阅Apache mod_rewrite。

答案 4 :(得分:0)

简单的答案:这些声明会将每个请求重写为rewrite.php文件。

更全面的答案:RewriteCondRewriteRule指令来自Apache module mod_rewrite,并提供基于规则的URL重写机制。

似乎这些规则旨在将每个请求重写为rewrite.php文件,无论是在特定目录(/~ foobar /rewrite.php)中还是根(/rewrite.php)。