2017-06-03 32 views
0

我想ID转换为URL地址栏标题,我发现有关这个话题。我也创造了在根目录下的代码看起来.htaccess文件一样ID所有权URL重写不工作

<IfModule mod_rewrite.c> RewriteEngine On  RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ ProductDetail.php?Product=$1 [QSA,L] 
</IfModule>` 

但许多问题什么工作。我是在重写URL新的,我只是想为你的亲切问候转换
ProductDetail.php?Product=1212ProductDetail/Title
感谢

+0

您需要注意,您创建的动态配置文件实际上是由http服务器考虑的。在apaches重写模块的文档中的'AllowOverride'功能上使用lolok。 – arkascha

+0

AllowOverride All但不起作用 –

+0

尝试检查:在该配置文件中放置明确的语法错误。事后你的http服务器错误日志文件中是否有错误?哪个错误? – arkascha

回答

1

一个URL重写基本规则是:它是不可能来处理查询而重写它

如果在你的榜样ProductDetail/Title标题指具有product=1212我们需要实际运行查询,甚至生成的URL,这反过来会导致在查询更改之前找到Title该项目的标题的方法,从而使效率降低(而不是在where子句中使用product,您必须使用一个字符串来代替Title)。

我们可以创建但是从ProductDetail.php?Product=1212改造ProductDetail/1212用下面的代码

<IfModule mod_rewrite.c> 
     RewriteEngine on 
     RewriteCond %{REQUEST_FILENAME} !-d 
     RewriteCond %{REQUEST_FILENAME} !-f 
     RewriteRule ^(.*)$ ./ProductDetail.php?Product=$1 [QSA,L] 
    </IfModule> 

另外,你需要为PHP文件所在的目录中,以前面加上./ PHP文件在您的路径。否则,它可能会产生一个错误,或根本不起作用。

Regards