使用.htaccess重写多个变量的规则

时间:2014-07-07 22:24:35

标签: php apache .htaccess url url-rewriting

我是相当新秀,想知道如何用.htaccess重写一个网址http://www.example.com/index.php?lang=21&page=164来说http://www.example.com/de/value-added-tax/,其中“de”指的是德语和“增值税” “指的是页面ID为64.我还有css和图像文件需要继续工作(例如./img/logo.png)。还有一些其他* .php文件需要继续工作(例如search.php)。托管服务器是Apache。

1 个答案:

答案 0 :(得分:0)

您无法重写...抱歉, Apache无法访问您的数据库。你不能要求它查询名称并回复ID ......

但也许你可以尝试这样的事情:

Options +FollowSymlinks
RewriteEngine on

RewriteCond $1 !^(search\.php|img/|robots\.txt)
RewriteRule ^([a-z]{2})/([a-zA-Z0-9-]*)(/?)$ index.php?lang=$1&page=$2 [L]

这适用于mydomain.tld/xx/zzz-zzzmydomain.tld/xx/zzz-zzz/ 这将重定向这样的所有内容,除非它以search.phpimg/robots.txt

开头
  • xx = 2个小写字母
  • zzz-zzz =所有字母数字和-

这将使用尾部斜杠,并且在地址末尾没有它

但您必须修改脚本以按页面名称进行搜索,不再按页面ID进行搜索,语言相同

希望它有所帮助!