2016-09-18 110 views
1

简单的问题...根据本教程:URL Rewriting我想制作一个简单的重定向规则。我正在测试服务器上工作,因此该网站位于域的子目录中:http://my-server.de/lcbs。我想将http://my-server.de/lcbs/index重定向到http://my-server.de/lcbs/index.php?page=news&parent=lcbs。所以I'm使用此规则:使用.htaccess在mod_rewrite默认重定向

RewriteEngine On 
RewriteRule ^lcbs/index?$ lcbs/index.php?page=news&parent=lcbs 

现在,当我想开http://my-server.de/lcbs/index,出现此错误:

The requested URL /lcbs/index was not found on this server. 

如果我将其更改为下面的代码:

RewriteEngine On 
RewriteRule ^index?$ index.php?page=news&parent=lcbs 

出现此错误:

The requested URL /var/www/lcbs.de/public_html/index.php was not found on this server. 

我做错了什么?我认为这不是一件大事... 谢谢!

+0

什么的'意图'附近的'RewriteRule' _pattern_结束? – MrWhite

+1

@ w3dk要回答评论 - 我忘了斜线,在URL的末尾有可选的斜杠。因此:'RewriteRule^index /?$ index.php?page = lcbs' – Fabman22

回答

1

试试这个:

RewriteEngine On 
RewriteBase /lcbs/ 
RewriteRule ^index$ index.php?page=news&parent=lcbs 

或本:

RewriteEngine On 
RewriteRule ^lcbs/index$ lcbs/index.php?page=news&parent=lcbs 
+0

第一个解决方案会创建一个服务器内部错误,并且整个网站无法通过此错误到达。第二个显示未找到异常“在此服务器上未找到请求的URL/lcbs/index”。 ...我试图通过查看日志找出它...... – Fabman22

+1

500错误是由'RewriteBase'指令的无效参数引起的 - 必须以斜杠开始。但是,如果OP代码不起作用,那么这些都不会(或者它们基本相同)。 – MrWhite

+0

谢谢!是的斜线是问题!现在它的工作 – Fabman22