2016-08-30 143 views
1

我想改变我的网站的网址:的.htaccess重写不工作

http://example.com/clinicdetails.php?url=/diet-clinic-in-punjabi-bagh.html 

看起来像这样:

http://example.com/clinicdetails.php/diet-clinic-in-punjabi-bagh.html 

我在.htaccess文件代码如下:

RewriteEngine On 
RewriteRule ^([^/]*)\.html$ /clinicdetails.php?url=$1 [L] 

但是,这是行不通的(没有错误)在我的本地主机上,也不在共享托管服务器上。这里可能是什么问题?

+0

Clinicaldetails.php是否执行?什么是'$ _GET {'url']'? – MrTux

+0

检查/ etc/apache2的/网站可用/默认配置正确与否应该是<目录/ var/www/html等> 选项指标的FollowSymLinks多视图 设置AllowOverride所有 订购允许,拒绝 允许所有 –

+0

@MrTux我有一个表和$ _GET ['url']用于从表中获取数据,用于显示数据,所以是页正在执行! –

回答

0
RewriteRule ^([^/]*)\.html$ /clinicdetails.php?url=$1 [L] 

RewriteRule模式未能给定的URL匹配,因为字符串锚^的开始。虽然您尝试匹配的路径段中没有斜杠,但您可以在网址的其余部分进行匹配。所以,请尝试以下操作:

RewriteRule ([^/]+)\.html$ /clinicdetails.php?url=/$1 [L] 

我也改变了*+,因为文件名是至少1字符。更具体的正则表达式更好。

要映射到所需的URL,您似乎还需要在URL参数值上使用斜杠前缀。即。 url=/$1