【发布时间】:2011-07-06 14:51:30
【问题描述】:
我在我的服务器上设置了 mod_rewrite 来重写如下网址
http://www.example.com/1
到
http://www.example.com/index.php?show=1
换句话说,URL 会缩短。当系统在我的开发站点的子域下运行时,一切正常,但现在它只生成一个 Not Found 错误,尽管如果我手动输入 url /index.php?show=1 它工作正常。
所以唯一的变化是从
切换的 urlhttp://www.site.example.com
到
http://www.site.com
但是它仍然在同一服务器上运行,并且服务器上 public_html 内的同一子文件夹只是新域名已指向该文件夹。
它所在的文件夹是/public_html/paste
目录中运行的完整.htaccess文件是
# Set Default File
DirectoryIndex index.php
# Turn ReWrite Engine On
RewriteEngine on
# Create Rule To Write URLs To Shorter Versions
RewriteRule /([a-z0-9]+) /index.php?show=$1
我无法启用 RewriteLog,因为主机出于某种原因不允许它。
【问题讨论】:
-
你确定你的主机有 mod_rewrite 并且允许 htaccess 覆盖吗?
-
正如我所说,当通过子域访问时它工作得很好,但只有在我用它自己的域设置它时才失败。它仍在同一服务器、帐户和同一主机上运行。另外,我还在该服务器上运行了另一个站点,它完美地使用了 mod_write。
标签: apache mod-rewrite