2011-07-05 57 views
0

我一直在尝试创建一个规则。.htaccess重写规则帮助

如果有人能帮忙,我会非常感激。

请求:domain.com/c/wb.php?p=rs/rs/1tb/25n/ru/rs

改写为:提前domain.com/c/wb/rs/rs/1tb/25n/ru/rs

感谢

回答

0

它应该是这个样子

RewriteRule ^(c/wb)\.php\?p=(rs/rs/1tb/25n/ru/rs)$ $1/$2 [L,NS] 

不过我不知道,如果你需要大幅削减如果你在你的.htaccess文件中使用了这个,你可以在c/wb的前面。如果您在VirtualHost配置中使用此功能,则需要使用斜杠。

+0

它不会工作 - 'RewriteRule'不与查询字符串**,只能用'的RewriteCond的工作有所帮助**直接' – LazyOne

+0

是的,你在这里是正确的。尽管@joseav想要@elmugrat看到它的重写规则,但我们的讨论毫无价值。 – Gedrox

1

我认为你有这个有点倒退。后面的URL重写的想法是,你拿个整洁的URL是这样的(用户所看到的):

http://domain.com/c/wb/rs/rs/1tb/25n/ru/rs 

,并重写它的幕后成丑陋,但PHP等友好的URL像这样(的服务器是什么流程):

http://domain.com/c/wb.php?p=rs/rs/1tb/25n/ru/rs 

要做到这一点,使用:

RewriteEngine On 
RewriteRule ^/c/wb/(.*) http://domain.com/c/wb.php?p=$1 [L, NS] 
+0

嗨,感谢您的宝贵帮助,我尝试@elmugrat解决方案,但我得到一个错误:内部服务器错误.....此外,尝试使用ErrorDocument来处理请求时遇到500内部服务器错误错误。谢谢 – joseav

+0

.htaccess还有什么? –