【发布时间】:2017-04-21 18:46:44
【问题描述】:
在我的 linux 服务器上,我有以下 .htaccess:
Options FollowSymLinks
RewriteEngine On
RewriteRule ^page/([^-]*)/([^-]*)$ index.php?module1=page&module2=$1&$2 [L]
RewriteRule ^page/([^-]*)$ index.php?module1=page&module2=$1 [L]
RewriteRule ^game/([^-]*)/([^-]*)$ index.php?module1=game&module2=$1&$2 [L]
RewriteRule ^game/([^-]*)$ index.php?module1=game&module2=$1 [L]
RewriteRule ^admin/([^-]*)/([^-]*)$ index.php?module1=admin&module2=$1&$2 [L]
RewriteRule ^admin/([^-]*)$ index.php?module1=admin&module2=$1 [L]
现在我想在我的 Windows 7 上设置它。我使用 WebServ 作为服务器(它构建在 apache2 之上)。
如果我复制粘贴这个 .htaccess,那么它最终会出现 http 错误 500
我必须评论 Options FollowSymlinks 才能使其工作。 但是重写仍然根本不起作用。 我试过了:
-
改变一切
apache2/conf/httpd.conf 中的AllowOverride xxx 到AllowOverride All
-
在我拥有的同一个文件中:
LoadModule rewrite_module modules/mod_rewrite.so(无注释)
所以问题是: 1. 为什么 Options FollowSymLinks 以 http 错误 500 结尾 2. 为什么重写不起作用?
最好的祝福
【问题讨论】:
-
符号链接在 MS-Windows 环境中不存在。它们是 unix/linux 传统的概念,在 MS-Windows 下没有直接对应的特性。这可能意味着如果该选项是专门为该环境创建的,则该选项在该 http 服务器中不存在。
-
我们无法透露更多信息,因为我们无法访问您的系统和所有信息。你必须把它给我们。首先是:“但是重写仍然根本不起作用”实际上是什么意思? 请将您的 http 服务器错误日志文件的相关部分添加到问题中。
-
“重写仍然无法正常工作”因为如果我转到 myurl/game/overview 它会显示错误 404 而不是将其重写为 index.php?module1=game&module2=$1&$2
-
那么我要求的错误日志文件的内容呢?看不到您将其添加到问题中...
-
我解决了,
RewriteBase成功了
标签: php .htaccess mod-rewrite apache2