0

尝试使用 Module rewrite 生成动态 URL,似乎 m 做错了什么并收到服务器错误!服务器遇到内部错误我使用了这个代码

<IfModule mod_rewrite.c>
 #Enable mod_Rewrite
 RewriteEngine on
 RewriteBase /project
 RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php|html?)\ HTTP
 RewriteRule ^(.*)index\.(php|html?)$ $1 [R=301,L]
 </ifModule>

该项目别名为 C:/project 任何指针来实现 m 试图做什么?m 使用 apche 2.4 应该将 .htacess 保存在项目文件夹中吗?还是conf文件夹??我想实现这样的目标

localhost/project/index.php?departmentId=2/
localhost/project/science-d2/

两者都应该加载相同的页面

4

2 回答 2

0

您正在使用无限循环,如下所示:假设您的 apache 在某个配置文件中配置如下:

DirectoryIndex index.php index.html index.cgi index.pl index.xhtml

您的重写规则可能会导致:

/project/index.php => /project => /project/index.php => /project => ...

在这种情况下,您无需重写。所以这里的解决方案是注释掉所有的指令:

#<IfModule mod_rewrite.c>
# #Enable mod_Rewrite
# RewriteEngine on
# RewriteBase /project
# RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php|html?)\ HTTP
# RewriteRule ^(.*)index\.(php|html?)$ $1 [R=301,L]
#</ifModule>
于 2013-11-01T13:50:20.240 回答
0

由于您使用的是 Apache 2.4,请尝试替换<IfModule mod_rewrite.c><IfModule rewrite_module>

所以最终的代码是这样的:

<IfModule rewrite_module>
    #Enable mod_Rewrite
    RewriteEngine on
    RewriteBase /project
    RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php|html?)\ HTTP
    RewriteRule ^(.*)index\.(php|html?)$ $1 [R=301,L]
</ifModule>

当然,请确保您rewrite_module在 .conf 文件中注释掉,以便它确实被加载。

于 2016-03-14T18:42:42.753 回答