.htaccess 重写规则对我不起作用
.htaccess rewrite rule not working for me
我正在尝试设置一些漂亮的 URL,所以
http://www.foo.com/results/2014
来电
http://www.foo.com/results/index.php?year=2014
“2014”实际上可以是任何字符串(如果输入不当,我会进行适当的错误处理)。
然而,我得到的是 http://www.foo.com/results/
工作正常,但尾随斜杠 returns 之后的任何内容都是 404 错误。
以下是我的 .htaccess 文件的内容。有人可以指出我的错误吗?
提前致谢!
.htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.foo.com/results/ [L,R=301]
RewriteRule ^results/([^/]+)/?$ /results/index.php?year=
在 /results/
目录中这样设置:
RewriteEngine On
RewriteBase /results/
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
RewriteRule ^([^/.]+)/?$ index.php?year= [L,QSA]
您的规则无效的原因:
- 您只能匹配当前目录中的相对 URI 模式。因此,如果您已经在
results/
文件夹中并且 URI 是 /results/foo
,则匹配的 URI 将是 foo
in RewriteRule
- 没有使用
RewriteBase
我正在尝试设置一些漂亮的 URL,所以
http://www.foo.com/results/2014
来电
http://www.foo.com/results/index.php?year=2014
“2014”实际上可以是任何字符串(如果输入不当,我会进行适当的错误处理)。
然而,我得到的是 http://www.foo.com/results/
工作正常,但尾随斜杠 returns 之后的任何内容都是 404 错误。
以下是我的 .htaccess 文件的内容。有人可以指出我的错误吗?
提前致谢!
.htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.foo.com/results/ [L,R=301]
RewriteRule ^results/([^/]+)/?$ /results/index.php?year=
在 /results/
目录中这样设置:
RewriteEngine On
RewriteBase /results/
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
RewriteRule ^([^/.]+)/?$ index.php?year= [L,QSA]
您的规则无效的原因:
- 您只能匹配当前目录中的相对 URI 模式。因此,如果您已经在
results/
文件夹中并且 URI 是/results/foo
,则匹配的 URI 将是foo
inRewriteRule
- 没有使用
RewriteBase