尝试使用模块重写生成动态Url,看起来好像做错了并且收到服务器错误!服务器遇到内部错误 我用过这段代码
<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尝试?使用apche 2.4应该将.htacess保存在项目文件夹中吗?或conf文件夹? 我想实现这样的目标
localhost/project/index.php?departmentId=2/
localhost/project/science-d2/
两者都应该加载相同的页面
答案 0 :(得分: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>
答案 1 :(得分: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>
当然请确保在.conf文件中注释rewrite_module
,以确保它已加载。