我想在url地址栏中将id转换为title,我发现很多与此主题相关的问题。我也在根目录代码中创建.htaccess文件看起来像
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ProductDetail.php?Product=$1 [QSA,L]
</IfModule>`
但没有任何效果。我是重写网址的新手,我只想转换为
ProductDetail.php?Product=1212
致ProductDetail/Title
谢谢您的亲切问候
答案 0 :(得分:1)
网址重写的一个基本规则是在重写时无法处理查询
如果在您的示例中ProductDetail/Title
标题表示具有product=1212
的项目的标题,我们需要在生成网址之前实际运行查询以查找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文件。否则可能会产生错误,或者根本不起作用。
此致