【发布时间】:2012-08-04 06:14:57
【问题描述】:
试图让 www.example.com/test.php?archives=testing 到 www.example.com/archives/testing
根据godaddy的说法,他们默认启用了mod_rewrite
这是我的 .htaccess 文件:
rewriteengine on
rewritecond %{HTTP_HOST} ^example.com$
rewriterule ^example\/(.*)$ "http\:\/\/www\.example\.com\/$1" [R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^archives/(\w+)$ test.php?archives=$1 [L]
但是这不起作用,当我访问 www.example.com/archives/test 时,我得到一个 404,建议
【问题讨论】:
-
什么情况下它不起作用?很可能它是你的正则表达式
([a-z]+)$那不适合你。我相信您还需要几个条件来触发规则。 -
它必须工作,即使没有
Options行。请参阅access和rewrite日志。 Mod_rewrite 无法正常工作。 -
我之前在 godaddy 上托管了一个网站,也遇到了一些 url 重写的问题,但它现在工作正常,在我的 htaccess 文件中,我没有
Options +FollowSymLinks -MultiViews和RewriteBase /,也许试一试? -
@chris 你能提供一个关于如何触发重写的链接
-
这是我不久前为某人提供的简短 url 渲染的答案。它在概念上是您尝试做的,但必须进行一些更改以满足您的特定需求。stackoverflow.com/questions/11022509/…
标签: php .htaccess mod-rewrite