我看了一眼其他mod_rewrite问题并且无法得出答案,所以如果有人会指出我可能会重复的问题,我会很感激。
无论如何我的问题是:为什么我的mod重写不起作用?我跟着3个教程,在这个网站上花了一段时间阅读论坛和以前的问题,并且无法让它们中的任何一个起作用。我试过通过我的vhosts.conf文件(我认为它也称为某些Linux安装中的httpd.conf)和.htaccess
这是我的.htaccess归档代码
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /
RewriteRule ^/article/([0-9]+)$ article.php?art_id=$1 [NC,L]
以下是我试图开始工作的链接:mysite.com/article?art_id=$1
老实说,我对mod_rewrite的运作方式只有一点线索。
我安装了mod_rewrite(我不管理服务器,但我工作的公司也有托管服务,这就是我如何访问vhosts.conf但我没有设置服务器,并且至于我知道这样做的人是专业人士并且设置正确)
我把它放进去看看我是否可以让它工作并将它重定向到我的主页(我认为这意味着它的工作)
# Options +FollowSymLinks
RewriteEngine on
RewriteRule ^fakepage\.html$ http://yoursite.com/ [R,L]
答案 0 :(得分:1)
至少就.htaccess
文件而言,使用您拥有的规则将无效,因为RewriteRule
的输入永远不会有一个初始正斜杠。该规则应该更像是这样:
RewriteRule ^article/([0-9]+)$ article.php?art_id=$1 [NC,L]
但是,当您在虚拟主机中尝试它时(假设您重新启动了服务器),您所拥有的应该有效,所以我不确定这是否是实际问题。重写以什么方式不起作用?您是否收到404错误而不是被重定向到您期望的文件?
答案 1 :(得分:0)
RewriteRule
Tim位于RewriteLog "/var/www/mysite.com/rewrite.log"
RewriteLogLevel 9
的开头correct about the slash。
在尝试找出重写时,打开logging:
会很有帮助{{1}}